make Type & Entry destroyable

This commit is contained in:
REAndroid 2023-03-13 08:50:57 -04:00
parent 24fbf87a2b
commit a07a800470
5 changed files with 29 additions and 0 deletions

View File

@ -29,6 +29,14 @@ public class EntryArray extends OffsetBlockArray<Entry> implements JSONConvert<J
public EntryArray(IntegerArray offsets, IntegerItem itemCount, IntegerItem itemStart){ public EntryArray(IntegerArray offsets, IntegerItem itemCount, IntegerItem itemStart){
super(offsets, itemCount, itemStart); super(offsets, itemCount, itemStart);
} }
public void destroy(){
for(Entry entry:listItems()){
if(entry!=null){
entry.setNull(true);
}
}
clearChildes();
}
public boolean hasComplexEntry(){ public boolean hasComplexEntry(){
Entry first = iterator(true).next(); Entry first = iterator(true).next();
if(first==null){ if(first==null){

View File

@ -43,6 +43,14 @@ public class TypeBlockArray extends BlockArray<TypeBlock>
public TypeBlockArray(){ public TypeBlockArray(){
super(); super();
} }
public void destroy(){
for(TypeBlock typeBlock:listItems()){
if(typeBlock!=null){
typeBlock.destroy();
}
}
clearChildes();
}
public void sort(){ public void sort(){
sort(this); sort(this);
} }

View File

@ -32,6 +32,10 @@
this.specFlagsArray = new SpecFlagsArray(header.getEntryCount()); this.specFlagsArray = new SpecFlagsArray(header.getEntryCount());
addChild(specFlagsArray); addChild(specFlagsArray);
} }
public void destroy(){
setParent(null);
getSpecFlagsArray().clear();
}
public SpecFlag getSpecFlag(int id){ public SpecFlag getSpecFlag(int id){
return getSpecFlagsArray().getFlag(id); return getSpecFlagsArray().getFlag(id);
} }

View File

@ -52,6 +52,11 @@ public class TypeBlock extends Chunk<TypeHeader>
addChild(entryOffsets); addChild(entryOffsets);
addChild(mEntryArray); addChild(mEntryArray);
} }
public void destroy(){
getEntryArray().destroy();
setId(0);
setParent(null);
}
public boolean removeNullEntries(int startId){ public boolean removeNullEntries(int startId){
startId = 0x0000ffff & startId; startId = 0x0000ffff & startId;
EntryArray entryArray = getEntryArray(); EntryArray entryArray = getEntryArray();

View File

@ -53,6 +53,10 @@ public class SpecTypePair extends BlockContainer<Block>
public SpecTypePair(){ public SpecTypePair(){
this(new SpecBlock(), new TypeBlockArray()); this(new SpecBlock(), new TypeBlockArray());
} }
public void destroy(){
getSpecBlock().destroy();
getTypeBlockArray().destroy();
}
public Entry getAnyEntry(String name){ public Entry getAnyEntry(String name){
for(TypeBlock typeBlock:listTypeBlocks()){ for(TypeBlock typeBlock:listTypeBlocks()){
Entry entry =typeBlock.searchByEntryName(name); Entry entry =typeBlock.searchByEntryName(name);