aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorKyle Galloway <kgallowa@redhat.com>2007-03-06 18:22:28 +0000
committerKyle Galloway <kgallowa@gcc.gnu.org>2007-03-06 18:22:28 +0000
commit61a36e0df4c8372e2e0383a62649c15f5adddca2 (patch)
tree9fe206fae105ae05d810fe654bdf04bb62da04cf /libjava
parent4ba851b58beb3102b31fb4282fdea684dfa6865a (diff)
downloadgcc-61a36e0df4c8372e2e0383a62649c15f5adddca2.zip
gcc-61a36e0df4c8372e2e0383a62649c15f5adddca2.tar.gz
gcc-61a36e0df4c8372e2e0383a62649c15f5adddca2.tar.bz2
jvmti.cc (_Jv_JVMTI_GetLocalVariableTable): Fix _Jv_Malloc parameters.
2007-03-06 Kyle Galloway <kgallowa@redhat.com> * jvmti.cc(_Jv_JVMTI_GetLocalVariableTable): Fix _Jv_Malloc parameters. * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc (do_getlocalvartable_tests): Add Deallocate calls to free strings. From-SVN: r122630
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/jvmti.cc20
-rw-r--r--libjava/testsuite/libjava.jvmti/interp/natgetlocalvartable.cc3
3 files changed, 18 insertions, 10 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 14fafff..b44c352 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-06 Kyle Galloway <kgallowa@redhat.com>
+ * jvmti.cc(_Jv_JVMTI_GetLocalVariableTable): Fix _Jv_Malloc parameters.
+ * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc
+ (do_getlocalvartable_tests): Add Deallocate calls to free strings.
+
2007-03-05 Matthias Klose <doko@debian.org>
* Makefile.am (gij_LDFLAGS): Use dbexecdir.
diff --git a/libjava/jvmti.cc b/libjava/jvmti.cc
index faa7401..0688787 100644
--- a/libjava/jvmti.cc
+++ b/libjava/jvmti.cc
@@ -997,23 +997,23 @@ _Jv_JVMTI_GetLocalVariableTable (MAYBE_UNUSED jvmtiEnv *env, jmethodID method,
table_slot)
>= 0)
{
+ char **str_ptr = &(*locals)[table_slot].name;
jerr = env->Allocate (static_cast<jlong> (strlen (name) + 1),
- reinterpret_cast<unsigned char **>
- (&(*locals)[table_slot].name));
+ reinterpret_cast<unsigned char **> (str_ptr));
if (jerr != JVMTI_ERROR_NONE)
return jerr;
strcpy ((*locals)[table_slot].name, name);
-
- jerr = env->Allocate (static_cast<jlong> (strlen (name) + 1),
- reinterpret_cast<unsigned char **>
- (&(*locals)[table_slot].signature));
+
+ str_ptr = &(*locals)[table_slot].signature;
+ jerr = env->Allocate (static_cast<jlong> (strlen (sig) + 1),
+ reinterpret_cast<unsigned char **> (str_ptr));
if (jerr != JVMTI_ERROR_NONE)
return jerr;
strcpy ((*locals)[table_slot].signature, sig);
-
- jerr = env->Allocate (static_cast<jlong> (strlen (name) + 1),
- reinterpret_cast<unsigned char **>
- (&(*locals)[table_slot].generic_signature));
+
+ str_ptr = &(*locals)[table_slot].generic_signature;
+ jerr = env->Allocate (static_cast<jlong> (strlen (generic_sig) + 1),
+ reinterpret_cast<unsigned char **> (str_ptr));
if (jerr != JVMTI_ERROR_NONE)
return jerr;
strcpy ((*locals)[table_slot].generic_signature, generic_sig);
diff --git a/libjava/testsuite/libjava.jvmti/interp/natgetlocalvartable.cc b/libjava/testsuite/libjava.jvmti/interp/natgetlocalvartable.cc
index 3ca112d..8899bac 100644
--- a/libjava/testsuite/libjava.jvmti/interp/natgetlocalvartable.cc
+++ b/libjava/testsuite/libjava.jvmti/interp/natgetlocalvartable.cc
@@ -53,8 +53,11 @@ JNIEXPORT jint JNICALL Java_getlocalvartable_do_1getlocalvartable_1tests
{
printf ("Slot: %d\n", static_cast<int> (var_table[j].slot));
printf (" Name: %s\n", var_table[j].name);
+ jvmti->Deallocate (reinterpret_cast<unsigned char *> (var_table[j].name));
printf (" Sig: %s\n", var_table[j].signature);
+ jvmti->Deallocate (reinterpret_cast<unsigned char *> (var_table[j].signature));
printf (" Gen Sig: %s\n", var_table[j].generic_signature);
+ jvmti->Deallocate (reinterpret_cast<unsigned char *> (var_table[j].generic_signature));
printf (" Start Loc: %ld\n", static_cast<long> (var_table[j].start_location));
printf (" Length: %d\n", static_cast<int> (var_table[j].length));
}