link only string types #36

This commit is contained in:
REAndroid 2023-04-28 20:03:48 +02:00
parent b6bbac2dcf
commit 3e31bb8bff
4 changed files with 16 additions and 5 deletions

View File

@ -742,9 +742,15 @@ import java.util.*;
writer.write("<public id=\"");
writer.write(getHexId());
writer.write("\" type=\"");
writer.write(getTypeName());
String str = getTypeName();
if(str != null){
writer.write(str);
}
writer.write("\" name=\"");
writer.write(getName());
str = getName();
if(str != null){
writer.write(str);
}
writer.write("\"/>");
}
@Override

View File

@ -241,7 +241,7 @@ public class PackageBlock extends Chunk<PackageHeader>
private void createEntryGroupMap(Map<Integer, EntryGroup> map){
map.clear();
for(SpecTypePair specTypePair:listAllSpecTypePair()){
map.putAll(specTypePair.createEntryGroups());
map.putAll(specTypePair.createEntryGroups(true));
}
}
public Map<Integer, EntryGroup> getEntriesGroupMap(){

View File

@ -68,10 +68,13 @@ public class SpecTypePair extends BlockContainer<Block>
}
}
public Map<Integer, EntryGroup> createEntryGroups(){
return createEntryGroups(false);
}
public Map<Integer, EntryGroup> createEntryGroups(boolean skipNullEntries){
Map<Integer, EntryGroup> map = new HashMap<>();
for(TypeBlock typeBlock:listTypeBlocks()){
EntryArray entryArray = typeBlock.getEntryArray();
for(Entry entry:entryArray.listItems()){
for(Entry entry:entryArray.listItems(skipNullEntries)){
if(entry==null){
continue;
}

View File

@ -42,7 +42,9 @@ import java.util.Objects;
}
void linkTableStrings(TableStringPool tableStringPool){
linkStringReference(tableStringPool);
if(getValueType() == ValueType.STRING){
linkStringReference(tableStringPool);
}
}
public void onRemoved(){
unLinkStringReference();