aboutsummaryrefslogtreecommitdiff
path: root/libjava/jvmti.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/jvmti.cc')
-rw-r--r--libjava/jvmti.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/libjava/jvmti.cc b/libjava/jvmti.cc
index 0688787..e9fa0a2 100644
--- a/libjava/jvmti.cc
+++ b/libjava/jvmti.cc
@@ -1111,7 +1111,13 @@ _Jv_JVMTI_GetArgumentsSize (jvmtiEnv *env, jmethodID method, jint *size)
|| sig[i] == 'I' || sig[i] == 'F')
num_slots++;
else if (sig[i] == 'J' || sig[i] == 'D')
- num_slots+=2;
+ {
+ // If this is an array of wide types it uses a single slot
+ if (i > 0 && sig[i-1] == '[')
+ num_slots++;
+ else
+ num_slots += 2;
+ }
else if (sig[i] == 'L')
{
num_slots++;