aboutsummaryrefslogtreecommitdiffstats
path: root/emulator
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2014-03-03 11:05:02 +0100
committerDavid 'Digit' Turner <digit@google.com>2014-03-06 00:32:11 +0100
commit7693d297d269b2d294ce4ce1c854991668eeb8eb (patch)
tree4e104312da264af7c85b7fa1b6ba8772d6b5294d /emulator
parentbfb9f632d4b0910cde452b116e7ce85c682f69ab (diff)
downloadsdk-7693d297d269b2d294ce4ce1c854991668eeb8eb.zip
sdk-7693d297d269b2d294ce4ce1c854991668eeb8eb.tar.gz
sdk-7693d297d269b2d294ce4ce1c854991668eeb8eb.tar.bz2
emulator/opengl: Fix SmartPtr memory leak.
Change-Id: I35d0650f2d69b3616167ee03decdc96b7ec09b2a
Diffstat (limited to 'emulator')
-rw-r--r--emulator/opengl/shared/emugl/common/smart_ptr.cpp4
-rw-r--r--emulator/opengl/shared/emugl/common/smart_ptr.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/emulator/opengl/shared/emugl/common/smart_ptr.cpp b/emulator/opengl/shared/emugl/common/smart_ptr.cpp
index 9ac7339..703487d 100644
--- a/emulator/opengl/shared/emugl/common/smart_ptr.cpp
+++ b/emulator/opengl/shared/emugl/common/smart_ptr.cpp
@@ -101,8 +101,10 @@ void* SmartPtrBase::release() {
mPtr = NULL;
mRefCount = NULL;
- if (old_refcount->decrement())
+ if (old_refcount->decrement()) {
+ delete old_refcount;
return old_ptr;
+ }
}
return NULL;
diff --git a/emulator/opengl/shared/emugl/common/smart_ptr.h b/emulator/opengl/shared/emugl/common/smart_ptr.h
index 2d7db5b..73efdd6 100644
--- a/emulator/opengl/shared/emugl/common/smart_ptr.h
+++ b/emulator/opengl/shared/emugl/common/smart_ptr.h
@@ -39,7 +39,7 @@ public:
// Assignment operator, also increments the reference count.
SmartPtrBase& operator=(const SmartPtrBase& other);
- // Nothing happens in this constructor, the real work must be performed
+ // Nothing happens in this destructor, the real work must be performed
// in subclasses.
~SmartPtrBase() {}