summaryrefslogtreecommitdiffstats
path: root/vm/Atomic.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2012-08-29 15:46:18 -0700
committerElliott Hughes <enh@google.com>2012-08-29 15:46:18 -0700
commit4bccb689a800df1f34c7b9e35381ccbea20beb18 (patch)
treea413baf3d7165136e69bd7032391c559bb0aabfa /vm/Atomic.cpp
parentf610461867348df0c5a624d75f39b34071044fb2 (diff)
downloadandroid_dalvik-4bccb689a800df1f34c7b9e35381ccbea20beb18.tar.gz
android_dalvik-4bccb689a800df1f34c7b9e35381ccbea20beb18.tar.bz2
android_dalvik-4bccb689a800df1f34c7b9e35381ccbea20beb18.zip
Don't crash in dvmQuasiAtomicsShutdown if we never ran dvmQuasiAtomicsStartup.
dalvikvm --help would fail here: #0 __pthread_mutex_destroy (mutex=0x0) at pthread_mutex_destroy.c:28 #1 0xf7b36e13 in dvmDestroyMutex (pMutex=0x0) at dalvik/vm/Thread.h:465 #2 dvmQuasiAtomicsShutdown () at dalvik/vm/Atomic.cpp:188 #3 0xf7b65781 in dvmShutdown () at dalvik/vm/Init.cpp:1889 #4 0xf7b65f31 in ~ScopedShutdown (this=<synthetic pointer>, __in_chrg=<optimized out>) at dalvik/vm/Init.cpp:1317 #5 dvmStartup (argc=11, argv=0x804b360, ignoreUnrecognized=false, pEnv=0x804b398) at dalvik/vm/Init.cpp:1548 #6 0xf7b790e2 in JNI_CreateJavaVM (p_vm=0xffffc758, p_env=0xffffc75c, vm_args=0xffffc760) at dalvik/vm/Jni.cpp:3502 #7 0x08048958 in main (argc=13, argv=0xffffc8b8) at dalvik/dalvikvm/Main.cpp:212 Change-Id: I8c833ca5ea454d9b2d1714a569fb728562088659
Diffstat (limited to 'vm/Atomic.cpp')
-rw-r--r--vm/Atomic.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/vm/Atomic.cpp b/vm/Atomic.cpp
index ac5d8ac3a..bd2255ba3 100644
--- a/vm/Atomic.cpp
+++ b/vm/Atomic.cpp
@@ -185,7 +185,9 @@ void dvmQuasiAtomicsShutdown() {
for (size_t i = 0; i < kSwapLockCount; ++i) {
pthread_mutex_t* m = gSwapLocks[i];
gSwapLocks[i] = NULL;
- dvmDestroyMutex(m);
+ if (m != NULL) {
+ dvmDestroyMutex(m);
+ }
delete m;
}
}