synchronise update "value string" & "data string" of xml attribute #23

This commit is contained in:
REAndroid 2023-03-30 07:28:57 -04:00
parent 0c4668ee7f
commit 22d4fb9b5d

View File

@ -208,12 +208,25 @@
return getInteger(getBytesInternal(), OFFSET_STRING); return getInteger(getBytesInternal(), OFFSET_STRING);
} }
void setValueStringReference(int ref){ void setValueStringReference(int ref){
if(ref == getValueStringReference()){ if(ref == getValueStringReference() && mValueStringReference!=null){
return; return;
} }
StringPool<?> stringPool = getStringPool();
if(stringPool == null){
return;
}
StringItem stringItem = stringPool.get(ref);
unlink(mValueStringReference); unlink(mValueStringReference);
if(stringItem!=null){
ref = stringItem.getIndex();
}
putInteger(getBytesInternal(), OFFSET_STRING, ref); putInteger(getBytesInternal(), OFFSET_STRING, ref);
mValueStringReference = link(OFFSET_STRING); ReferenceItem referenceItem = null;
if(stringItem!=null){
referenceItem = new ReferenceBlock<>(this, OFFSET_STRING);
stringItem.addReference(referenceItem);
}
mValueStringReference = referenceItem;
} }
@Override @Override