summaryrefslogtreecommitdiffstats
path: root/core/jni
diff options
context:
space:
mode:
authorBarry Hayes <bhayes@google.com>2010-02-02 14:05:09 -0800
committerBarry Hayes <bhayes@google.com>2010-02-03 08:46:54 -0800
commitc2b3217823444792b52d621b3cd024d64c3338e3 (patch)
tree0367795bf20d52e8fe2f12d6798f0ebb7ceeb042 /core/jni
parent445cc0e4bfd5b9460fb1cdccd22d8d54a49e5da1 (diff)
downloadframeworks_base-c2b3217823444792b52d621b3cd024d64c3338e3.zip
frameworks_base-c2b3217823444792b52d621b3cd024d64c3338e3.tar.gz
frameworks_base-c2b3217823444792b52d621b3cd024d64c3338e3.tar.bz2
Add a "dalvik.vm.gc.overwritefree" property. When set to "true", the
VM will be given the "-Xgc:overwritefree" flag, and the GC will clobber the memory of freed objects.
Diffstat (limited to 'core/jni')
-rw-r--r--core/jni/AndroidRuntime.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index fa1ee0d..1d22de3 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -656,6 +656,15 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
}
}
+ /* enable poisoning of memory of freed objects */
+ property_get("dalvik.vm.gc.overwritefree", propBuf, "false");
+ if (strcmp(propBuf, "true") == 0) {
+ opt.optionString = "-Xgc:overwritefree";
+ mOptions.add(opt);
+ } else if (strcmp(propBuf, "false") != 0) {
+ LOGW("dalvik.vm.gc.overwritefree should be 'true' or 'false'");
+ }
+
/* enable debugging; set suspend=y to pause during VM init */
#ifdef HAVE_ANDROID_OS
/* use android ADB transport */