diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2013-03-18 19:47:36 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2013-03-18 19:47:36 +0000 |
commit | f51c3860ce0a1ae81d0dc9da27db0693718db18e (patch) | |
tree | ecec31a29093edd4cf97b94e81cf3012d49f1bd8 /lib/tsan/rtl/tsan_rtl_report.cc | |
parent | 3ce21701b4e1026a4f5157ff9771c533f4e3ef55 (diff) | |
download | compiler-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.cc | 15 |
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); |