This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: pb_ds debug mode patch


Hi

I have also made progress on those issues and found mostly problems in places where assert_valid is called in ov_tree_data_ implementation. Just 2 examples:
- assert_valid is called in update private method that is sometimes used before the debug part as been updated. To fix those assertion I simply remove assert_valid call in update method because there is always a call to assert_valid following the update call.
- assert_valid in call in ov_tree_data destructor but in ov_treee_data_ split there are temporary ov_tree_data_ instances that are used with value_swap that leave the instance in an inconsistent state resulting in the assertion. Once again I prefered to remove the assert_valid call in the destructor


I also notice a problem with debug_base::join that also clean the source while joining. In ov_tree_data_ it is a problem because the 'other' instance becomes inconsistent after the call to debug_base::join and the call to clear that follows perform a assert_valid that fails.

There are other similar issues that I will detailed when sending a new version of the patch tomorrow I think.

Regards

On 05/05/2011 07:17 PM, Benjamin Kosnik wrote:
debug container is not maintained correctly but I can't find where it
come from. Anyone can have a try ?
debug_base::split, join.

I have this fixed, and have a bunch of patches on top of yours that I
would like to check in all at once.

Can you send me a ChangeLog for your part of this and I'll put the
whole thing in?

best,
-benjamin



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]