Fixed issue with size calculation in placeValue

git-svn-id: https://smali.googlecode.com/svn/trunk@384 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
This commit is contained in:
JesusFreke@JesusFreke.com 2009-08-11 02:56:41 +00:00
parent 9cbb91a1be
commit ae7235f8df

View File

@ -119,25 +119,25 @@ public class ClassDataItem extends Item<ClassDataItem> {
EncodedField previousEncodedField = null; EncodedField previousEncodedField = null;
for (EncodedField encodedField: staticFields) { for (EncodedField encodedField: staticFields) {
offset += encodedField.place(offset, previousEncodedField); offset = encodedField.place(offset, previousEncodedField);
previousEncodedField = encodedField; previousEncodedField = encodedField;
} }
previousEncodedField = null; previousEncodedField = null;
for (EncodedField encodedField: instanceFields) { for (EncodedField encodedField: instanceFields) {
offset += encodedField.place(offset, previousEncodedField); offset = encodedField.place(offset, previousEncodedField);
previousEncodedField = encodedField; previousEncodedField = encodedField;
} }
EncodedMethod previousEncodedMethod = null; EncodedMethod previousEncodedMethod = null;
for (EncodedMethod encodedMethod: directMethods) { for (EncodedMethod encodedMethod: directMethods) {
offset += encodedMethod.place(offset, previousEncodedMethod); offset = encodedMethod.place(offset, previousEncodedMethod);
previousEncodedMethod = encodedMethod; previousEncodedMethod = encodedMethod;
} }
previousEncodedMethod = null; previousEncodedMethod = null;
for (EncodedMethod encodedMethod: virtualMethods) { for (EncodedMethod encodedMethod: virtualMethods) {
offset += encodedMethod.place(offset, previousEncodedMethod); offset = encodedMethod.place(offset, previousEncodedMethod);
previousEncodedMethod = encodedMethod; previousEncodedMethod = encodedMethod;
} }
@ -448,7 +448,7 @@ public class ClassDataItem extends Item<ClassDataItem> {
offset += Leb128Utils.unsignedLeb128Size(method.getIndex() - previousIndex); offset += Leb128Utils.unsignedLeb128Size(method.getIndex() - previousIndex);
offset += Leb128Utils.unsignedLeb128Size(accessFlags); offset += Leb128Utils.unsignedLeb128Size(accessFlags);
offset += codeItem==null?1:Leb128Utils.unsignedLeb128Size(codeItem.getIndex()); offset += codeItem==null?1:Leb128Utils.unsignedLeb128Size(codeItem.getOffset());
return offset; return offset;
} }