summaryrefslogtreecommitdiff
path: root/debian/patches/libjava-armel-unwind.diff
blob: 12c78b3a8a20c7f0f35917098440e551578d7eba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# DP: On armel, apply kludge to fix unwinder infinitely looping 'til it runs out
# DP: of memory (http://gcc.gnu.org/ml/java/2008-06/msg00010.html).

---
 libjava/stacktrace.cc |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

--- a/src/libjava/stacktrace.cc
+++ b/src/libjava/stacktrace.cc
@@ -115,6 +115,9 @@ _Jv_StackTrace::UnwindTraceFn (struct _Unwind_Context *context, void *state_ptr)
   // Check if the trace buffer needs to be extended.
   if (pos == state->length)
     {
+      // http://gcc.gnu.org/ml/java/2008-06/msg00010.html
+      return _URC_END_OF_STACK;
+
       int newLength = state->length * 2;
       void *newFrames = _Jv_AllocBytes (newLength * sizeof(_Jv_StackFrame));
       memcpy (newFrames, state->frames, state->length * sizeof(_Jv_StackFrame));