From fa92a88d0a0da792eeb57a7068d62e45c68f5a2f Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Tue, 22 Jun 2004 18:21:29 +0000 Subject: [PATCH] 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: r83508 --- libjava/ChangeLog | 6 ++++++ libjava/gnu/gcj/runtime/StackTrace.java | 1 + libjava/gnu/gcj/runtime/natStackTrace.cc | 7 ++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 9affdc6175a7..7460c9be8a08 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2004-06-22 Bryce McKinlay + + Fix PR libgcj/12475 + * gnu/gcj/runtime/StackTrace.java (finalize): Declare. + * gnu/gcj/runtime/natStackTrace.cc (finalize): New. Free "addrs". + 2004-05-31 Release Manager * GCC 3.3.4 Released. diff --git a/libjava/gnu/gcj/runtime/StackTrace.java b/libjava/gnu/gcj/runtime/StackTrace.java index 5faaa1495ae0..d3fe88f166dc 100644 --- a/libjava/gnu/gcj/runtime/StackTrace.java +++ b/libjava/gnu/gcj/runtime/StackTrace.java @@ -155,6 +155,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 d39cd00dbaba..ef887cf2cac1 100644 --- a/libjava/gnu/gcj/runtime/natStackTrace.cc +++ b/libjava/gnu/gcj/runtime/natStackTrace.cc @@ -195,4 +195,9 @@ gnu::gcj::runtime::StackTrace::update(void) } } - +void +gnu::gcj::runtime::StackTrace::finalize(void) +{ + if (addrs != NULL) + _Jv_Free (addrs); +} -- 2.47.2