aboutsummaryrefslogtreecommitdiff
path: root/libjava/jvmti.cc
diff options
context:
space:
mode:
authorKyle Galloway <kgallowa@redhat.com>2007-03-12 20:12:47 +0000
committerKyle Galloway <kgallowa@gcc.gnu.org>2007-03-12 20:12:47 +0000
commitb389f63b057a9ab1a27fa6d0fd5bfae71b6b0818 (patch)
treeb84ae8d569e6095686be19dade278ec187fd4bac /libjava/jvmti.cc
parent80ca80e9cc14aeebef210761a9083094346ad2ce (diff)
downloadgcc-b389f63b057a9ab1a27fa6d0fd5bfae71b6b0818.zip
gcc-b389f63b057a9ab1a27fa6d0fd5bfae71b6b0818.tar.gz
gcc-b389f63b057a9ab1a27fa6d0fd5bfae71b6b0818.tar.bz2
jvmti.cc (_Jv_JVMTI_GetArgumentsSize): Make wide type arrays count as a sigle slot.
2007-03-12 Kyle Galloway <kgallowa@redhat.com> * jvmti.cc (_Jv_JVMTI_GetArgumentsSize): Make wide type arrays count as a sigle slot. From-SVN: r122863
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++;