Modify

Ticket #4346 (reopened Bugs)

Opened 6 years ago

Last modified 8 weeks ago

Boost pool's not comaptible with Microsoft memory leak detection

Reported by: Arkadiy Shapkin <arkadiy_s@…> Owned by: cnewbold
Milestone: Boost 1.61.0 Component: pool
Version: Boost 1.60.0 Severity: Regression
Keywords: Cc: serg_joker@…

Description

Boost pool classes not compatible with Microsoft memory leak detection.

You can include that lines in code: #ifdef _DEBUG

#define _CRTDBG_MAP_ALLOC

#endif #include <crtdbg.h> #include "boost\pool\pool_alloc.hpp"

We can solve problem using two ways:

  1. Rename all malloc & free methods
  2. Add #pragma push_macro, #undef and #pragma pop_macro lines. Also add alternative names for malloc and free methods

Attachments

pool.patch Download (1.6 KB) - added by Arkadiy Shapkin <arkadiy_s@…> 6 years ago.

Change History

Changed 6 years ago by Arkadiy Shapkin <arkadiy_s@…>

comment:1 Changed 6 years ago by steven_watanabe

  • Owner set to cnewbold
  • Component changed from None to pool

comment:2 Changed 6 years ago by steven_watanabe

  • Status changed from new to closed
  • Resolution set to fixed

(In [63009]) Protect Boost.Pool from evil #defines of malloc and free. Fixes #4346.

comment:3 Changed 5 years ago by marshall

(In [67958]) Merging fixes to release; Fixes #2696; Refs #4346; Refs #2941; Refs #386

comment:4 Changed 8 weeks ago by serg_joker@…

  • Status changed from closed to reopened
  • Version changed from Boost 1.44.0 to Boost 1.60.0
  • Resolution fixed deleted
  • Severity changed from Problem to Regression
  • Milestone changed from Boost 1.43.0 to Boost 1.61.0

Reproduced again. MSVC 2015 Update 1 boost 1.60

Looks like #pragma push_macro/undef/pop_macro stuff was eliminated

comment:5 Changed 8 weeks ago by Sergey Pastukhov <serg_joker@…>

  • Cc serg_joker@… added
View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as reopened
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.