aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryce McKinlay <bryce@mckinlay.net.nz>2003-10-02 07:10:34 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2003-10-02 08:10:34 +0100
commitfddb33d2cd74d9bfd6951802ea075ad122ad1571 (patch)
tree1ceb18e3ff3e3946ca3f2212f72ef14293c258cd
parentf4b2bde73f84ff3936cba8c8a3773c4c29a038fe (diff)
downloadgcc-fddb33d2cd74d9bfd6951802ea075ad122ad1571.zip
gcc-fddb33d2cd74d9bfd6951802ea075ad122ad1571.tar.gz
gcc-fddb33d2cd74d9bfd6951802ea075ad122ad1571.tar.bz2
re PR libgcj/12475 (Stack traces leak memory)
Fix PR libgcj/12475 * gnu/gcj/runtime/StackTrace.java (finalize): Declare. * gnu/gcj/runtime/natStackTrace.cc (finalize): New. Free "addrs". From-SVN: r72012
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libjava/gnu/gcj/runtime/StackTrace.java1
-rw-r--r--libjava/gnu/gcj/runtime/natStackTrace.cc7
3 files changed, 13 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index e8c98bd..2ab3393 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-01 Bryce McKinlay <bryce@mckinlay.net.nz>
+
+ Fix PR libgcj/12475
+ * gnu/gcj/runtime/StackTrace.java (finalize): Declare.
+ * gnu/gcj/runtime/natStackTrace.cc (finalize): New. Free "addrs".
+
2003-10-01 Tom Tromey <tromey@redhat.com>
* gnu/gcj/runtime/FirstThread.java (getMain): Fixed indentation.
diff --git a/libjava/gnu/gcj/runtime/StackTrace.java b/libjava/gnu/gcj/runtime/StackTrace.java
index 684ee4f..c9f5a1a 100644
--- a/libjava/gnu/gcj/runtime/StackTrace.java
+++ b/libjava/gnu/gcj/runtime/StackTrace.java
@@ -157,6 +157,7 @@ public final class StackTrace
}
private native void fillInStackTrace(int n, int offset);
+ protected native void finalize();
private static native MethodRef getCompiledMethodRef(RawData addr);
private static IdentityHashMap map = new IdentityHashMap();
diff --git a/libjava/gnu/gcj/runtime/natStackTrace.cc b/libjava/gnu/gcj/runtime/natStackTrace.cc
index af8889b..5e5aed8 100644
--- a/libjava/gnu/gcj/runtime/natStackTrace.cc
+++ b/libjava/gnu/gcj/runtime/natStackTrace.cc
@@ -200,4 +200,9 @@ gnu::gcj::runtime::StackTrace::update(void)
}
}
-
+void
+gnu::gcj::runtime::StackTrace::finalize(void)
+{
+ if (addrs != NULL)
+ _Jv_Free (addrs);
+}