summaryrefslogtreecommitdiffstats
path: root/vm/Thread.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2012-01-06 17:25:14 -0800
committerElliott Hughes <enh@google.com>2012-01-09 17:30:52 -0800
commit6d1a1dfd0ef006e19067b6ffd927160d0c6d9647 (patch)
tree23d93b875c8c16a09a11a2bdd2c01f840aae42cd /vm/Thread.cpp
parentc1a4ab9c313d8a3d12007f2dbef7b5a6fa4ac2ef (diff)
downloadandroid_dalvik-6d1a1dfd0ef006e19067b6ffd927160d0c6d9647.tar.gz
android_dalvik-6d1a1dfd0ef006e19067b6ffd927160d0c6d9647.tar.bz2
android_dalvik-6d1a1dfd0ef006e19067b6ffd927160d0c6d9647.zip
Fix a small memory leak.
Found by someone reading the code, rather than because we saw a crash. This is only a small leak, and you'd have to be dumping threads (because of an ANR) or creating a new thread to provoke it. Change-Id: I9c660d86056765bcbebbdfa634032885c3f91b82
Diffstat (limited to 'vm/Thread.cpp')
-rw-r--r--vm/Thread.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/vm/Thread.cpp b/vm/Thread.cpp
index f0217b43f..1ced9ca62 100644
--- a/vm/Thread.cpp
+++ b/vm/Thread.cpp
@@ -3369,7 +3369,10 @@ std::string dvmGetThreadName(Thread* thread) {
StringObject* nameObj = (StringObject*)
dvmGetFieldObject(thread->threadObj, gDvm.offJavaLangThread_name);
- return dvmCreateCstrFromString(nameObj);
+ char* name = dvmCreateCstrFromString(nameObj);
+ std::string result(name);
+ free(name);
+ return result;
}
#ifdef HAVE_ANDROID_OS