Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96198eba authored by Mårten Kongstad's avatar Mårten Kongstad Committed by Zoran Jovanovic
Browse files

RRO idmap: pad with 0xffffffff, not 0x00000000

In the new idmap format (version 0x1), 0x00000000 no longer represents a
non-existing entry: 0xffffffff should be used instead.

Bug: 17765434
Change-Id: If2c7e09feba2224eeafe88fd9230e6392d81b9a7
parent 30113131
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -6080,14 +6080,14 @@ status_t ResTable::createIdmap(const ResTable& overlay,
            }

            if (typeMap.entryOffset + typeMap.entryMap.size() < entryIndex) {
                // Resize to accomodate this entry and the 0's in between.
                if (typeMap.entryMap.resize((entryIndex - typeMap.entryOffset) + 1) < 0) {
                // pad with 0xffffffff's (indicating non-existing entries) before adding this entry
                size_t index = typeMap.entryMap.size();
                size_t numItems = entryIndex - (typeMap.entryOffset + index);
                if (typeMap.entryMap.insertAt(0xffffffff, index, numItems) < 0) {
                    return NO_MEMORY;
                }
                typeMap.entryMap.editTop() = Res_GETENTRY(overlayResID);
            } else {
                typeMap.entryMap.add(Res_GETENTRY(overlayResID));
            }
            typeMap.entryMap.add(Res_GETENTRY(overlayResID));
        }

        if (!typeMap.entryMap.isEmpty()) {