Closed GoogleCodeExporter closed 8 years ago
This is the pre JDK 1.5-Bytecode (validated, 1.4 has it still) for
StringBuffer.append(String.class)
// Field descriptor #118 Ljava/lang/Class;
static synthetic java.lang.Class array$Ljava$lang$String;
...
12 getstatic org.decojer.cavaj.test.DecTestFields.class$java$lang$String : java.lang.Class [43]
15 ifnull 24
18 getstatic org.decojer.cavaj.test.DecTestFields.class$java$lang$String : java.lang.Class [43]
21 goto 33
24 ldc <String "java.lang.String"> [14]
26 invokestatic org.decojer.cavaj.test.DecTestFields.class$(java.lang.String) : java.lang.Class [39]
29 dup
30 putstatic org.decojer.cavaj.test.DecTestFields.class$java$lang$String : java.lang.Class [43]
33 invokevirtual java.lang.StringBuffer.append(java.lang.Object) : java.lang.StringBuffer [33]
Original comment by andrePan...@gmail.com
on 11 Oct 2011 at 10:24
void.class / int.class are like in newer:
323 getstatic java.lang.Integer.TYPE : java.lang.Class [69]
326 invokevirtual java.lang.StringBuilder.append(java.lang.Object) : java.lang.StringBuilder [107]
Original comment by andrePan...@gmail.com
on 11 Oct 2011 at 10:50
fix in expression resolver, now we get things like:
protected final Class referenceClassTest3 = (DecTestFields.array$$I == null ?
(DecTestFields.array$$I = DecTestFields
.class$("[[I")) : DecTestFields.array$$I).getClass();
...still must reduce this, variable names:
class$<desc.replace(/,$)>
array$$$$dims$$$$<desc.replace(/,$)>
Original comment by andrePan...@gmail.com
on 15 Oct 2011 at 11:11
OK done so far, pre-1.2
final null fields are not initialized properly:
private final int[][] referenceIntArrayNullTest;
thats a todo.
problem is version only indicates >= 1.3 ...must check for all this versions
for this very old problem?!
Original comment by andrePan...@gmail.com
on 15 Oct 2011 at 9:05
The change for this is done now.
Original comment by andrePan...@gmail.com
on 15 Oct 2011 at 9:21
reopened...org.eclipse.jdt.core_3.7.0.v_B61.jar has problems,
they use this sequence for class$0:
GET-class$0 DUP CHECK -> (POP Class.forName() DUP PUT-class$0) ->
Original comment by andrePan...@gmail.com
on 19 Oct 2011 at 8:39
and 1.3.1 uses this:
* GET class$java$lang$String JCND_NE // (PUSH "typeLiteral" INVOKE Class.forName DUP PUT
* class$java$lang$String GOTO .) \\ (GET class$java$lang$String) .
TODO!
Original comment by andrePan...@gmail.com
on 29 Oct 2012 at 8:35
OK, quick and dirty resolved...later better matcher
Original comment by andrePan...@gmail.com
on 4 Nov 2012 at 8:49
Original comment by andrePan...@gmail.com
on 12 Aug 2013 at 2:48
Original issue reported on code.google.com by
andrePan...@gmail.com
on 9 Oct 2011 at 11:50