< prev index next >

src/jdk.jdwp.agent/share/native/libjdwp/invoker.c

Print this page

        

@@ -144,11 +144,12 @@
         while (argumentTag != SIGNATURE_END_ARGS) {
             if ( argIndex > request->argumentCount ) {
                 break;
             }
             if ((argumentTag == JDWP_TAG(OBJECT)) ||
-                (argumentTag == JDWP_TAG(ARRAY))) {
+                (argumentTag == JDWP_TAG(ARRAY))  ||
+                (argumentTag == JDWP_TAG(INLINE_OBJECT))) {
                 /* Create a global ref for any non-null argument */
                 if (argument->l != NULL) {
                     saveGlobalRef(env, argument->l, &argRefs[argIndex]);
                     if (argRefs[argIndex] == NULL) {
                         error = AGENT_ERROR_OUT_OF_MEMORY;

@@ -177,11 +178,12 @@
             argIndex = 0;
             argumentTag = firstArgumentTypeTag(request->methodSignature, &cursor);
             argument = request->arguments;
             while ( argIndex < request->argumentCount ) {
                 if ((argumentTag == JDWP_TAG(OBJECT)) ||
-                    (argumentTag == JDWP_TAG(ARRAY))) {
+                    (argumentTag == JDWP_TAG(ARRAY))  ||
+                    (argumentTag == JDWP_TAG(INLINE_OBJECT))) {
                     argument->l = argRefs[argIndex];
                 }
                 argument++;
                 argIndex++;
                 argumentTag = nextArgumentTypeTag(&cursor);

@@ -230,11 +232,12 @@
         tossGlobalRef(env, &(request->instance));
     }
     /* Delete global argument references */
     while (argIndex < request->argumentCount) {
         if ((argumentTag == JDWP_TAG(OBJECT)) ||
-            (argumentTag == JDWP_TAG(ARRAY))) {
+            (argumentTag == JDWP_TAG(ARRAY))  ||
+            (argumentTag == JDWP_TAG(INLINE_OBJECT))) {
             if (argument->l != NULL) {
                 tossGlobalRef(env, &(argument->l));
             }
         }
         argument++;

@@ -404,11 +407,12 @@
 static void
 invokeStatic(JNIEnv *env, InvokeRequest *request)
 {
     switch(returnTypeTag(request->methodSignature)) {
         case JDWP_TAG(OBJECT):
-        case JDWP_TAG(ARRAY): {
+        case JDWP_TAG(ARRAY):
+        case JDWP_TAG(INLINE_OBJECT): {
             jobject object;
             JDI_ASSERT_MSG(request->clazz, "Request clazz null");
             object = JNI_FUNC_PTR(env,CallStaticObjectMethodA)(env,
                                        request->clazz,
                                        request->method,

@@ -493,11 +497,12 @@
 static void
 invokeVirtual(JNIEnv *env, InvokeRequest *request)
 {
     switch(returnTypeTag(request->methodSignature)) {
         case JDWP_TAG(OBJECT):
-        case JDWP_TAG(ARRAY): {
+        case JDWP_TAG(ARRAY):
+        case JDWP_TAG(INLINE_OBJECT): {
             jobject object;
             JDI_ASSERT_MSG(request->instance, "Request instance null");
             object = JNI_FUNC_PTR(env,CallObjectMethodA)(env,
                                  request->instance,
                                  request->method,

@@ -581,11 +586,12 @@
 static void
 invokeNonvirtual(JNIEnv *env, InvokeRequest *request)
 {
     switch(returnTypeTag(request->methodSignature)) {
         case JDWP_TAG(OBJECT):
-        case JDWP_TAG(ARRAY): {
+        case JDWP_TAG(ARRAY):
+        case JDWP_TAG(INLINE_OBJECT): {
             jobject object;
             JDI_ASSERT_MSG(request->clazz, "Request clazz null");
             JDI_ASSERT_MSG(request->instance, "Request instance null");
             object = JNI_FUNC_PTR(env,CallNonvirtualObjectMethodA)(env,
                                            request->instance,

@@ -805,11 +811,12 @@
 
         /* Release return value and exception references, but delay the release
          * until after the return packet was sent. */
         mustReleaseReturnValue = request->invokeType == INVOKE_CONSTRUCTOR ||
            returnTypeTag(request->methodSignature) == JDWP_TAG(OBJECT) ||
-           returnTypeTag(request->methodSignature) == JDWP_TAG(ARRAY);
+           returnTypeTag(request->methodSignature) == JDWP_TAG(ARRAY)  ||
+           returnTypeTag(request->methodSignature) == JDWP_TAG(INLINE_OBJECT);
     }
 
     /*
      * At this time, there's no need to retain global references on
      * arguments since the reply is processed. No one will deal with
< prev index next >