diff options
| author | Bryce McKinlay <bryce@mckinlay.net.nz> | 2003-10-02 07:10:34 +0000 |
|---|---|---|
| committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2003-10-02 08:10:34 +0100 |
| commit | fddb33d2cd74d9bfd6951802ea075ad122ad1571 (patch) | |
| tree | 1ceb18e3ff3e3946ca3f2212f72ef14293c258cd /libjava/gnu | |
| parent | f4b2bde73f84ff3936cba8c8a3773c4c29a038fe (diff) | |
| download | gcc-fddb33d2cd74d9bfd6951802ea075ad122ad1571.tar.gz gcc-fddb33d2cd74d9bfd6951802ea075ad122ad1571.tar.bz2 gcc-fddb33d2cd74d9bfd6951802ea075ad122ad1571.zip | |
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
Diffstat (limited to 'libjava/gnu')
| -rw-r--r-- | libjava/gnu/gcj/runtime/StackTrace.java | 1 | ||||
| -rw-r--r-- | libjava/gnu/gcj/runtime/natStackTrace.cc | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/libjava/gnu/gcj/runtime/StackTrace.java b/libjava/gnu/gcj/runtime/StackTrace.java index 684ee4fd997..c9f5a1a26e8 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 af8889beb52..5e5aed87e5c 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); +} |
