diff options
author | Elliott Hughes <enh@google.com> | 2012-08-29 15:46:18 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2012-08-29 15:46:18 -0700 |
commit | 4bccb689a800df1f34c7b9e35381ccbea20beb18 (patch) | |
tree | a413baf3d7165136e69bd7032391c559bb0aabfa /vm/Atomic.cpp | |
parent | f610461867348df0c5a624d75f39b34071044fb2 (diff) | |
download | android_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.cpp | 4 |
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; } } |