Fix various debugger method invocation bugs.

(Also fix DexFile to admit that string lengths are always non-negative.)

Change-Id: I2d01ef2411b5c7e594527790daf3e0aaa3a1b67f
diff --git a/src/runtime_support.cc b/src/runtime_support.cc
index d9d7e90..38d2699 100644
--- a/src/runtime_support.cc
+++ b/src/runtime_support.cc
@@ -540,7 +540,7 @@
   // Fix up jobject arguments
   MethodHelper mh(jni_method);
   int reg_num = 2;  // Current register being processed, -1 for stack arguments.
-  for (int32_t i = 1; i < mh.GetShortyLength(); i++) {
+  for (uint32_t i = 1; i < mh.GetShortyLength(); i++) {
     char shorty_char = mh.GetShorty()[i];
     if (shorty_char == 'L') {
       WorkAroundJniBugsForJobject(arg_ptr);