From b503df9890f1479d40500c909f78ac2aeb8f8d5a Mon Sep 17 00:00:00 2001 From: REAndroid Date: Sun, 1 Jan 2023 11:01:52 -0500 Subject: [PATCH] fix unsigned short id --- .../reandroid/lib/arsc/array/EntryBlockArray.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/reandroid/lib/arsc/array/EntryBlockArray.java b/src/main/java/com/reandroid/lib/arsc/array/EntryBlockArray.java index bd013be..7ac940e 100755 --- a/src/main/java/com/reandroid/lib/arsc/array/EntryBlockArray.java +++ b/src/main/java/com/reandroid/lib/arsc/array/EntryBlockArray.java @@ -36,20 +36,25 @@ public class EntryBlockArray extends OffsetBlockArray implements JSO return !iterator(true).hasNext(); } public void setEntry(short entryId, EntryBlock entryBlock){ - setItem(entryId, entryBlock); + setItem(0xffff & entryId, entryBlock); } public EntryBlock getOrCreate(short entryId){ - EntryBlock entryBlock=get(entryId); + int id = 0xffff & entryId; + EntryBlock entryBlock=get(id); if(entryBlock!=null){ return entryBlock; } - int count=entryId+1; + int count=id+1; ensureSize(count); refreshCount(); - return get(entryId); + return get(id); + } + public EntryBlock get(short entryId){ + int index = 0xffff & entryId; + return super.get(index); } public EntryBlock getEntry(short entryId){ - return get(entryId); + return get(0xffff & entryId); } @Override public EntryBlock newInstance() {