[gold][patch] Control caching of memory mapped regions

Ian Lance Taylor iant@google.com
Wed Mar 10 16:39:00 GMT 2010


Cary Coutant <ccoutant@google.com> writes:

>>> -      if (p->second->is_locked())
>>> +      if (p->second->is_locked() || !p->second->is_data_owned())
>>>       should_delete = false;
>>
>> I'm having a little trouble understanding the test of is_data_owned().
>> is_data_owned() will return true if the data_ownership_ field is not
>> DATA_NOT_OWNED.  The only time that field will be DATA_NOT_OWNED is
>> for the whole file view created for an in-memory file, which is only
>> done for testing.  So in normal usage is_data_owned() will always
>> return true.  Given the tests above, that seems to suggest that
>> should_delete is pretty much always going to be false.  That is
>> obviously not what your results show, so what am I missing?
>
> I think you're missing the "!" -- is_data_owned() will always return
> true in normal execution, so !is_data_owned() will be false, and the
> condition remains as before: simply if (p->second->is_locked()). I had
> to add that just to keep it from deleting the whole file view in the
> unit tests. Yeah, the double negative is confusing; I welcome
> suggestions for a better name -- maybe something like
> is_permanent_view() or is_testing_view()?

Argh, you're right, the double negative got me.  Sorry about that.

The patch is OK.  It's also OK if you change the name.

Thanks.

Ian



More information about the Binutils mailing list