From 1366901baedd774b0f541434f368090fdda8d20b Mon Sep 17 00:00:00 2001 From: Nikolay Igotti Date: Tue, 12 Sep 2017 21:46:07 +0300 Subject: [PATCH] Fix backtrace generation for opt builds --- runtime/src/main/cpp/Exceptions.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/runtime/src/main/cpp/Exceptions.cpp b/runtime/src/main/cpp/Exceptions.cpp index d31947b5032..c904cd11c09 100644 --- a/runtime/src/main/cpp/Exceptions.cpp +++ b/runtime/src/main/cpp/Exceptions.cpp @@ -135,7 +135,8 @@ OBJ_GETTER0(GetCurrentStackTrace) { #if USE_GCC_UNWIND int depth = 0; _Unwind_Backtrace(depthCountCallback, &depth); - if (depth < kSkipFrames) RETURN_OBJ(nullptr); + if (depth < kSkipFrames) + return AllocArrayInstance(theArrayTypeInfo, 0, OBJ_RESULT) Backtrace result(depth, kSkipFrames); _Unwind_Backtrace(unwindCallback, &result); RETURN_OBJ(result.obj()); @@ -146,7 +147,8 @@ OBJ_GETTER0(GetCurrentStackTrace) { int size = backtrace(buffer, maxSize); char** symbols = backtrace_symbols(buffer, size); RuntimeAssert(symbols != nullptr, "Not enough memory to retrieve the stacktrace"); - if (size < kSkipFrames) RETURN_OBJ(nullptr); + if (size < kSkipFrames) + return AllocArrayInstance(theArrayTypeInfo, 0, OBJ_RESULT); AutoFree autoFree(symbols); ObjHolder resultHolder; ObjHeader* result = AllocArrayInstance(