From 1238bebddc4939d2dc0741c9bdc625a1ce85c1ff Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Tue, 1 Oct 2013 15:06:17 +0200 Subject: [PATCH] build: Add stub _get_thread_info() needed by support/Referenceable.cpp This is a step towards fixing #10042. When DEBUG is set BReferenceable::~BReferenceable() performs some checks ensuring that the object is destroyed correctly. These checks require information on thread stack, which is obtained by get_thread_info(). _get_thread_info() stub is added (actually, readded) which always returns B_ERROR. Moreover, the check in BReferenceable destructor is modified so that it does not fail when get_thread_info() fails. --- src/build/libroot/thread.cpp | 10 +++++----- src/kits/support/Referenceable.cpp | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/build/libroot/thread.cpp b/src/build/libroot/thread.cpp index 7998694b1d..b359027492 100644 --- a/src/build/libroot/thread.cpp +++ b/src/build/libroot/thread.cpp @@ -38,11 +38,11 @@ find_thread(const char *name) } // _get_thread_info -// status_t -// _get_thread_info(thread_id id, thread_info *info, size_t size) -// { -// return B_ERROR; -// } +status_t +_get_thread_info(thread_id id, thread_info* info, size_t size) +{ + return B_ERROR; +} // _get_next_thread_info // status_t diff --git a/src/kits/support/Referenceable.cpp b/src/kits/support/Referenceable.cpp index ca849f81e8..fcc981cb00 100644 --- a/src/kits/support/Referenceable.cpp +++ b/src/kits/support/Referenceable.cpp @@ -47,8 +47,8 @@ BReferenceable::~BReferenceable() // stack range to be sure. thread_info info; status_t result = get_thread_info(find_thread(NULL), &info); - if (result != B_OK || this < info.stack_base - || this > info.stack_end) { + if (result == B_OK && (this < info.stack_base + || this > info.stack_end)) { snprintf(message, sizeof(message), "Deleted referenceable " "object that's not on the stack (this: %p, stack_base: %p," " stack_end: %p)\n", this, info.stack_base,