Merge "Add some certimport.sh documention" into dalvik-dev
diff --git a/libcore/json/src/main/java/org/json/JSONTokener.java b/libcore/json/src/main/java/org/json/JSONTokener.java
index d5d2dd2..3b0f593 100644
--- a/libcore/json/src/main/java/org/json/JSONTokener.java
+++ b/libcore/json/src/main/java/org/json/JSONTokener.java
@@ -482,8 +482,8 @@
*
* <p>The returned string shares its backing character array with this
* tokener's input string. If a reference to the returned string may be held
- * indefinitely, you should {@link String(String) copy} it first to avoid
- * memory leaks.
+ * indefinitely, you should use {@code new String(result)} to copy it first
+ * to avoid memory leaks.
*
* @throws JSONException if the remaining input is not long enough to
* satisfy this request.
@@ -508,8 +508,8 @@
*
* <p>The returned string shares its backing character array with this
* tokener's input string. If a reference to the returned string may be held
- * indefinitely, you should {@link String(String) copy} it first to avoid
- * memory leaks.
+ * indefinitely, you should use {@code new String(result)} to copy it first
+ * to avoid memory leaks.
*
* @return a possibly-empty string
*/
diff --git a/vm/Misc.c b/vm/Misc.c
index 193e0bd..87f4c81 100644
--- a/vm/Misc.c
+++ b/vm/Misc.c
@@ -21,6 +21,7 @@
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
+#include <strings.h>
#include <ctype.h>
#include <time.h>
#include <sys/time.h>
diff --git a/vm/compiler/codegen/arm/CodegenDriver.c b/vm/compiler/codegen/arm/CodegenDriver.c
index 8104ef2..33a8fb5 100644
--- a/vm/compiler/codegen/arm/CodegenDriver.c
+++ b/vm/compiler/codegen/arm/CodegenDriver.c
@@ -565,6 +565,16 @@
loadWordDisp(cUnit, r0, offsetof(Object, clazz), r0);
opReg(cUnit, kOpBlx, r2);
dvmCompilerClobberCallRegs(cUnit);
+
+ /*
+ * Using fixed registers here, and counting on r4 and r7 being
+ * preserved across the above call. Tell the register allocation
+ * utilities about the regs we are using directly
+ */
+ dvmCompilerLockTemp(cUnit, regPtr); // r4PC
+ dvmCompilerLockTemp(cUnit, regIndex); // r7
+ dvmCompilerLockTemp(cUnit, r0);
+
/* Bad? - roll back and re-execute if so */
genRegImmCheck(cUnit, kArmCondEq, r0, 0, mir->offset, pcrLabel);
@@ -2246,6 +2256,12 @@
case OP_IPUT_BOOLEAN:
genIPut(cUnit, mir, kUnsignedByte, fieldOffset);
break;
+ case OP_IGET_WIDE_VOLATILE:
+ case OP_IPUT_WIDE_VOLATILE:
+ case OP_SGET_WIDE_VOLATILE:
+ case OP_SPUT_WIDE_VOLATILE:
+ genInterpSingleStep(cUnit, mir);
+ break;
default:
return true;
}