summaryrefslogtreecommitdiff
path: root/lib/tsan/rtl/tsan_rtl_report.cc
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2013-03-18 19:47:36 +0000
committerDmitry Vyukov <dvyukov@google.com>2013-03-18 19:47:36 +0000
commitf51c3860ce0a1ae81d0dc9da27db0693718db18e (patch)
treeecec31a29093edd4cf97b94e81cf3012d49f1bd8 /lib/tsan/rtl/tsan_rtl_report.cc
parent3ce21701b4e1026a4f5157ff9771c533f4e3ef55 (diff)
downloadcompiler-rt-f51c3860ce0a1ae81d0dc9da27db0693718db18e.tar.gz
compiler-rt-f51c3860ce0a1ae81d0dc9da27db0693718db18e.tar.bz2
compiler-rt-f51c3860ce0a1ae81d0dc9da27db0693718db18e.tar.xz
tsan: smaller memory block headers (32b->16b)
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177312 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan/rtl/tsan_rtl_report.cc')
-rw-r--r--lib/tsan/rtl/tsan_rtl_report.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/tsan/rtl/tsan_rtl_report.cc b/lib/tsan/rtl/tsan_rtl_report.cc
index 5967f774..2df42346 100644
--- a/lib/tsan/rtl/tsan_rtl_report.cc
+++ b/lib/tsan/rtl/tsan_rtl_report.cc
@@ -216,6 +216,13 @@ static ThreadContext *FindThreadByUidLocked(int unique_id) {
return 0;
}
+static ThreadContext *FindThreadByTidLocked(int tid) {
+ Context *ctx = CTX();
+ ctx->thread_registry->CheckLocked();
+ return static_cast<ThreadContext*>(
+ ctx->thread_registry->GetThreadLocked(tid));
+}
+
static bool IsInStackOrTls(ThreadContextBase *tctx_base, void *arg) {
uptr addr = (uptr)arg;
ThreadContext *tctx = static_cast<ThreadContext*>(tctx_base);
@@ -306,20 +313,20 @@ void ScopedReport::AddLocation(uptr addr, uptr size) {
}
if (allocator()->PointerIsMine((void*)addr)) {
MBlock *b = user_mblock(0, (void*)addr);
- ThreadContext *tctx = FindThreadByUidLocked(b->alloc_tid);
+ ThreadContext *tctx = FindThreadByTidLocked(b->Tid());
void *mem = internal_alloc(MBlockReportLoc, sizeof(ReportLocation));
ReportLocation *loc = new(mem) ReportLocation();
rep_->locs.PushBack(loc);
loc->type = ReportLocationHeap;
loc->addr = (uptr)allocator()->GetBlockBegin((void*)addr);
- loc->size = b->size;
- loc->tid = tctx ? tctx->tid : b->alloc_tid;
+ loc->size = b->Size();
+ loc->tid = tctx ? tctx->tid : b->Tid();
loc->name = 0;
loc->file = 0;
loc->line = 0;
loc->stack = 0;
uptr ssz = 0;
- const uptr *stack = StackDepotGet(b->alloc_stack_id, &ssz);
+ const uptr *stack = StackDepotGet(b->StackId(), &ssz);
if (stack) {
StackTrace trace;
trace.Init(stack, ssz);