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

Commit f4ccbf81 authored by Ian Pedowitz's avatar Ian Pedowitz Committed by android-build-merger
Browse files

Revert "Track ashmem memory usage in Parcel" am: 6880307e am: 159a5c33

am: 7a2643cd

* commit '7a2643cd':
  Revert "Track ashmem memory usage in Parcel"
parents ce0f028e 7a2643cd
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -372,11 +372,9 @@ public:

private:
    size_t mBlobAshmemSize;
    size_t mOpenAshmemSize;

public:
    size_t getBlobAshmemSize() const;
    size_t getOpenAshmemSize() const;
};

// ---------------------------------------------------------------------------
@@ -444,9 +442,9 @@ inline TextOutput& operator<<(TextOutput& to, const Parcel& parcel)

// Generic acquire and release of objects.
void acquire_object(const sp<ProcessState>& proc,
                    const flat_binder_object& obj, const void* who, size_t* outAshmemSize);
                    const flat_binder_object& obj, const void* who);
void release_object(const sp<ProcessState>& proc,
                    const flat_binder_object& obj, const void* who, size_t* outAshmemSize);
                    const flat_binder_object& obj, const void* who);

void flatten_binder(const sp<ProcessState>& proc,
                    const sp<IBinder>& binder, flat_binder_object* out);
+10 −28
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ enum {
};

void acquire_object(const sp<ProcessState>& proc,
    const flat_binder_object& obj, const void* who, size_t* outAshmemSize)
    const flat_binder_object& obj, const void* who)
{
    switch (obj.type) {
        case BINDER_TYPE_BINDER:
@@ -123,13 +123,8 @@ void acquire_object(const sp<ProcessState>& proc,
            return;
        }
        case BINDER_TYPE_FD: {
            if (obj.cookie != 0) {
                // If we own an ashmem fd, keep track of how much memory it refers to.
                int size = ashmem_get_size_region(obj.handle);
                if (size > 0) {
                    *outAshmemSize += size;
                }
            }
            // intentionally blank -- nothing to do to acquire this, but we do
            // recognize it as a legitimate object type.
            return;
        }
    }
@@ -138,7 +133,7 @@ void acquire_object(const sp<ProcessState>& proc,
}

void release_object(const sp<ProcessState>& proc,
    const flat_binder_object& obj, const void* who, size_t* outAshmemSize)
    const flat_binder_object& obj, const void* who)
{
    switch (obj.type) {
        case BINDER_TYPE_BINDER:
@@ -165,14 +160,7 @@ void release_object(const sp<ProcessState>& proc,
            return;
        }
        case BINDER_TYPE_FD: {
            if (obj.cookie != 0) {
                int size = ashmem_get_size_region(obj.handle);
                if (size > 0) {
                    *outAshmemSize -= size;
                }

                close(obj.handle);
            }
            if (obj.cookie != 0) close(obj.handle);
            return;
        }
    }
@@ -516,7 +504,7 @@ status_t Parcel::appendFrom(const Parcel *parcel, size_t offset, size_t len)

            flat_binder_object* flat
                = reinterpret_cast<flat_binder_object*>(mData + off);
            acquire_object(proc, *flat, this, &mOpenAshmemSize);
            acquire_object(proc, *flat, this);

            if (flat->type == BINDER_TYPE_FD) {
                // If this is a file descriptor, we need to dup it so the
@@ -1237,7 +1225,7 @@ restart_write:
        // Need to write meta-data?
        if (nullMetaData || val.binder != 0) {
            mObjects[mObjectsSize] = mDataPos;
            acquire_object(ProcessState::self(), val, this, &mOpenAshmemSize);
            acquire_object(ProcessState::self(), val, this);
            mObjectsSize++;
        }

@@ -2097,7 +2085,7 @@ void Parcel::releaseObjects()
        i--;
        const flat_binder_object* flat
            = reinterpret_cast<flat_binder_object*>(data+objects[i]);
        release_object(proc, *flat, this, &mOpenAshmemSize);
        release_object(proc, *flat, this);
    }
}

@@ -2111,7 +2099,7 @@ void Parcel::acquireObjects()
        i--;
        const flat_binder_object* flat
            = reinterpret_cast<flat_binder_object*>(data+objects[i]);
        acquire_object(proc, *flat, this, &mOpenAshmemSize);
        acquire_object(proc, *flat, this);
    }
}

@@ -2299,7 +2287,7 @@ status_t Parcel::continueWrite(size_t desired)
                    // will need to rescan because we may have lopped off the only FDs
                    mFdsKnown = false;
                }
                release_object(proc, *flat, this, &mOpenAshmemSize);
                release_object(proc, *flat, this);
            }
            binder_size_t* objects =
                (binder_size_t*)realloc(mObjects, objectsSize*sizeof(binder_size_t));
@@ -2386,7 +2374,6 @@ void Parcel::initState()
    mAllowFds = true;
    mOwner = NULL;
    mBlobAshmemSize = 0;
    mOpenAshmemSize = 0;
}

void Parcel::scanForFds() const
@@ -2409,11 +2396,6 @@ size_t Parcel::getBlobAshmemSize() const
    return mBlobAshmemSize;
}

size_t Parcel::getOpenAshmemSize() const
{
    return mOpenAshmemSize;
}

// --- Parcel::Blob ---

Parcel::Blob::Blob() :