16
16
*/
17
17
package com .googlecode .d2j .dex .writer ;
18
18
19
- import static com .googlecode .d2j .reader .InstructionFormat .kFmt10x ;
20
- import static com .googlecode .d2j .reader .InstructionFormat .kFmt11x ;
21
- import static com .googlecode .d2j .reader .InstructionFormat .kFmt22b ;
22
- import static com .googlecode .d2j .reader .InstructionFormat .kFmt22s ;
23
- import static com .googlecode .d2j .reader .InstructionFormat .kFmt23x ;
24
- import static com .googlecode .d2j .reader .InstructionFormat .kFmt35c ;
25
- import static com .googlecode .d2j .reader .InstructionFormat .kFmt3rc ;
26
- import static com .googlecode .d2j .reader .Op .BAD_OP ;
27
- import static com .googlecode .d2j .reader .Op .CONST ;
28
- import static com .googlecode .d2j .reader .Op .CONST_16 ;
29
- import static com .googlecode .d2j .reader .Op .CONST_HIGH16 ;
30
- import static com .googlecode .d2j .reader .Op .CONST_WIDE_32 ;
31
-
32
- import java .nio .ByteBuffer ;
33
- import java .nio .ByteOrder ;
34
- import java .util .*;
35
-
36
19
import com .googlecode .d2j .DexLabel ;
37
20
import com .googlecode .d2j .Field ;
38
21
import com .googlecode .d2j .Method ;
39
- import com .googlecode .d2j .dex .writer .insn .Insn ;
40
- import com .googlecode .d2j .dex .writer .insn .JumpOp ;
41
- import com .googlecode .d2j .dex .writer .insn .Label ;
42
- import com .googlecode .d2j .dex .writer .insn .OpInsn ;
43
- import com .googlecode .d2j .dex .writer .insn .PreBuildInsn ;
44
- import com .googlecode .d2j .dex .writer .item .BaseItem ;
45
- import com .googlecode .d2j .dex .writer .item .CodeItem ;
46
- import com .googlecode .d2j .dex .writer .item .ConstPool ;
47
- import com .googlecode .d2j .dex .writer .item .DebugInfoItem ;
48
- import com .googlecode .d2j .node .DexDebugNode ;
22
+ import com .googlecode .d2j .dex .writer .insn .*;
23
+ import com .googlecode .d2j .dex .writer .item .*;
49
24
import com .googlecode .d2j .reader .Op ;
50
25
import com .googlecode .d2j .visitors .DexCodeVisitor ;
51
26
import com .googlecode .d2j .visitors .DexDebugVisitor ;
52
27
28
+ import java .nio .ByteBuffer ;
29
+ import java .nio .ByteOrder ;
30
+ import java .util .*;
31
+
32
+ import static com .googlecode .d2j .reader .InstructionFormat .*;
33
+ import static com .googlecode .d2j .reader .Op .*;
34
+
53
35
@ SuppressWarnings ("incomplete-switch" )
54
36
public class CodeWriter extends DexCodeVisitor {
55
37
final CodeItem codeItem ;
@@ -793,6 +775,7 @@ public DexDebugVisitor visitDebug() {
793
775
794
776
if (codeItem .debugInfo == null ) {
795
777
codeItem .debugInfo = new DebugInfoItem ();
778
+ codeItem .debugInfo .parameterNames =new StringIdItem [owner .getParameterTypes ().length ];
796
779
}
797
780
final DebugInfoItem debugInfoItem = codeItem .debugInfo ;
798
781
cp .addDebugInfoItem (debugInfoItem );
@@ -803,11 +786,10 @@ public void visitParameterName(int parameterIndex, String name) {
803
786
if (name == null ) {
804
787
return ;
805
788
}
806
- while ( debugInfoItem .parameterNames .size () <= parameterIndex ) {
807
- debugInfoItem . parameterNames . add ( null ) ;
789
+ if ( parameterIndex >= debugInfoItem .parameterNames .length ) {
790
+ return ;
808
791
}
809
-
810
- debugInfoItem .parameterNames .set (parameterIndex , cp .uniqString (name ));
792
+ debugInfoItem .parameterNames [parameterIndex ] = cp .uniqString (name );
811
793
}
812
794
813
795
@ Override
0 commit comments