summaryrefslogtreecommitdiff
path: root/libjava/jvmti.cc
diff options
context:
space:
mode:
authorkgallowa <kgallowa@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-12 20:12:47 +0000
committerkgallowa <kgallowa@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-12 20:12:47 +0000
commitf870c81b90b8c2ea45ef4562d1e8fe270545ef7b (patch)
treeb84ae8d569e6095686be19dade278ec187fd4bac /libjava/jvmti.cc
parent16e1a7dadf7fa1ae62727891ad33475e40cf35a4 (diff)
downloadgcc-f870c81b90b8c2ea45ef4562d1e8fe270545ef7b.tar.gz
2007-03-12 Kyle Galloway <kgallowa@redhat.com>
* jvmti.cc (_Jv_JVMTI_GetArgumentsSize): Make wide type arrays count as a sigle slot. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122863 138bc75d-0d04-0410-961f-82ee72b054a4
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 068878793d5..e9fa0a22927 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++;