Skip to content

Commit

Permalink
Fix serialization bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
n1hility committed Oct 25, 2014
1 parent f7c1307 commit 3d2f973
Show file tree
Hide file tree
Showing 9 changed files with 242 additions and 58 deletions.
2 changes: 1 addition & 1 deletion src/main/java/org/jboss/jandex/FieldInternal.java
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ final short flags() {
}

public String toString(ClassInfo clazz) {
return type + " " + clazz.name() + "." + name;
return type + " " + clazz.name() + "." + name();
}

void setType(Type type) {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/jboss/jandex/IndexReaderV1.java
Original file line number Diff line number Diff line change
Expand Up @@ -295,10 +295,10 @@ private Type readType(PackedDataInputStream stream) throws IOException {


private void readStringTable(PackedDataInputStream stream) throws IOException {
int entries = stream.readPackedU32();
int entries = stream.readPackedU32() + 1;
stringTable = new String[entries];

for (int i = 0; i < entries; i++) {
for (int i = 1; i < entries; i++) {
stringTable[i] = stream.readUTF();
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/jboss/jandex/IndexReaderV2.java
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ private void readTypeListTable(PackedDataInputStream stream) throws IOException
// Null is the implicit first entry
Type[][] typeListTable = this.typeListTable;
// Already emitted entries are omitted as gaps in the table portion
for (int i = 1; i < typeListTable.length; i = findNextNull(typeListTable, i)) {
for (int i = findNextNull(typeListTable, 1); i < typeListTable.length; i = findNextNull(typeListTable, i)) {
typeListTable[i] = readTypeListEntry(stream);
}
}
Expand Down Expand Up @@ -459,7 +459,7 @@ private FieldInternal readFieldEntry(PackedDataInputStream stream) throws IOExce
Type type = typeTable[stream.readPackedU32()];

FieldInfo fieldInfo = new FieldInfo();
AnnotationInstance[] annotations = readAnnotations(stream, new MethodInfo());
AnnotationInstance[] annotations = readAnnotations(stream, fieldInfo);
FieldInternal fieldInternal = new FieldInternal(name, type, flags, annotations);
fieldInfo.setFieldInternal(fieldInternal);
return fieldInternal;
Expand Down
9 changes: 7 additions & 2 deletions src/main/java/org/jboss/jandex/IndexWriterV2.java
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,6 @@ static class ReferenceTable<T> {
private int counter = 1;

void addReference(T reference) {
assert table == null;

if (references.containsKey(reference)) {
return;
}
Expand Down Expand Up @@ -692,9 +690,15 @@ private void addAnnotation(AnnotationInstance instance) {
for (AnnotationValue value : instance.values()) {
buildAValueEntries(value);
}

addAnnotationTarget(instance.target());
annotationTable.addReference(instance);
}

private void addAnnotationTarget(AnnotationTarget target) {

}

private void addFieldList(FieldInternal[] fields) {
for (FieldInternal field : fields) {
deepIntern(field);
Expand Down Expand Up @@ -769,6 +773,7 @@ private void addType(Type type) {
break;
case PARAMETERIZED_TYPE:
ParameterizedType parameterizedType = type.asParameterizedType();
addClassName(parameterizedType.name());
addType(parameterizedType.owner());
addTypeList(parameterizedType.parameterArray());
break;
Expand Down
Loading

0 comments on commit 3d2f973

Please sign in to comment.