From 62d50261ebece2af03f8421bd9a178e146c2d7b5 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Wed, 29 Jun 2011 09:45:54 +0000 Subject: [PATCH] fix potential bug with clear function --- Robust/src/Runtime/bamboo/markbit.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Robust/src/Runtime/bamboo/markbit.h b/Robust/src/Runtime/bamboo/markbit.h index acec1ae1..afe82af6 100644 --- a/Robust/src/Runtime/bamboo/markbit.h +++ b/Robust/src/Runtime/bamboo/markbit.h @@ -124,7 +124,6 @@ static inline void clearMark(void *ptr) { unsigned int bits=(index>48)?32:bitmarkmappingarray[index]; unsigned int bitstotoss=32-bits; gcmarktbl[hibits]^=((hipart>>(bitstotoss))<<(bitstotoss)); - } else { unsigned int orighi=gcmarktbl[hibits]; unsigned int hipart=orighi<>bitstotoss)<>lobits; - gcmarktbl[hibits+1]^=(lowpart>>bitstotoss)<<(bitstotoss+revlobits); + unsigned int xormask=(lowpart>>bitstotoss)<<(bitstotoss+revlobits); + if (xormask) + gcmarktbl[hibits+1]^=xormask; } } -- 2.34.1