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

Commit 2ce0e3ff authored by Alex Sakhartchouk's avatar Alex Sakhartchouk
Browse files

Adding allocation reference counting to the a3d models.

Change-Id: I225b431d09bfebbebf49df75b7df5e4d5961a564
parent a919112f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -391,7 +391,8 @@ Allocation *Allocation::createFromStream(Context *rsc, IStream *stream)
    alloc->setName(name.string(), name.size());

    // Read in all of our allocation data
    stream->loadByteArray(alloc->getPtr(), dataSize);
    alloc->data(stream->getPtr() + stream->getPos(), dataSize);
    stream->reset(stream->getPos() + dataSize);

    return alloc;
}
+5 −0
Original line number Diff line number Diff line
@@ -114,6 +114,7 @@ Element *Element::createFromStream(Context *rsc, IStream *stream)
    Element *elem = new Element(rsc);
    elem->mComponent.loadFromStream(stream);
    elem->mBits = elem->mComponent.getBits();
    elem->mHasReference = elem->mComponent.isReference();

    elem->mFieldCount = stream->loadU32();
    if(elem->mFieldCount) {
@@ -125,6 +126,10 @@ Element *Element::createFromStream(Context *rsc, IStream *stream)
            elem->mFields[ct].e.set(fieldElem);
            elem->mFields[ct].offsetBits = offset;
            offset += fieldElem->getSizeBits();
            // Check if our sub-elements have references
            if(fieldElem->mHasReference) {
                elem->mHasReference = true;
            }
        }
    }