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

Commit 53bfab1f authored by Hans Boehm's avatar Hans Boehm Committed by android-build-merger
Browse files

Merge "Fix reference counting for Assembly"

am: 3b653050

Change-Id: I4c5b167d34e495a8bd2a373887d0124b8f12c96a
parents 388a65d1 3b653050
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@
#include <sys/mman.h>

#include <cutils/ashmem.h>
#include <cutils/atomic.h>
#define LOG_TAG "CodeCache"
#include <cutils/log.h>

@@ -101,7 +100,7 @@ static mspace getMspace()
}

Assembly::Assembly(size_t size)
    : mCount(1), mSize(0)
    : mCount(0), mSize(0)
{
    mBase = (uint32_t*)mspace_malloc(getMspace(), size);
    LOG_ALWAYS_FATAL_IF(mBase == NULL,
@@ -117,12 +116,12 @@ Assembly::~Assembly()

void Assembly::incStrong(const void*) const
{
    android_atomic_inc(&mCount);
    mCount.fetch_add(1, std::memory_order_relaxed);
}

void Assembly::decStrong(const void*) const
{
    if (android_atomic_dec(&mCount) == 1) {
    if (mCount.fetch_sub(1, std::memory_order_acq_rel) == 1) {
        delete this;
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#ifndef ANDROID_CODECACHE_H
#define ANDROID_CODECACHE_H

#include <atomic>
#include <stdint.h>
#include <pthread.h>
#include <sys/types.h>
@@ -69,7 +70,7 @@ public:
    typedef void    weakref_type;

private:
    mutable int32_t     mCount;
    mutable std::atomic<int32_t>     mCount;
            uint32_t*   mBase;
            size_t      mSize;
};
+0 −1
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@

#include <sys/mman.h>
#include <cutils/ashmem.h>
#include <cutils/atomic.h>

#define __STDC_FORMAT_MACROS
#include <inttypes.h>
+0 −1
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@

#include <sys/mman.h>
#include <cutils/ashmem.h>
#include <cutils/atomic.h>
#include <cutils/log.h>

#define __STDC_FORMAT_MACROS