在 2013-06-11二的 15:34 +0400,Michael Tokarev写道: > 11.06.2013 09:15, liguang wrote: > > because memory_region_update_pending is bool > > > > Signed-off-by: liguang <lig.f...@cn.fujitsu.com> > > --- > > memory.c | 18 +++++++++--------- > > 1 files changed, 9 insertions(+), 9 deletions(-) > > > > diff --git a/memory.c b/memory.c > > index 5cb8f4a..d99eecd 100644 > > --- a/memory.c > > +++ b/memory.c > > @@ -1114,7 +1114,7 @@ void memory_region_set_log(MemoryRegion *mr, bool > > log, unsigned client) > > > > memory_region_transaction_begin(); > > mr->dirty_log_mask = (mr->dirty_log_mask & ~mask) | (log * mask); > > - memory_region_update_pending |= mr->enabled; > > + memory_region_update_pending = mr->enabled; > > This is wrong, and the original code was right. Here and in all other places. >
Is it valid to do '|' operation for boolean? or maybe memory_region_update_pending should be int?