Opened 8 years ago

Last modified 3 years ago

#4346 reopened Bugs

Boost pool's not comaptible with Microsoft memory leak detection

Reported by: Arkadiy Shapkin <arkadiy_s@…> Owned by: Chris Newbold
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 (1)

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

Download all attachments as: .zip

Change History (6)

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

Attachment: pool.patch added

comment:1 Changed 8 years ago by Steven Watanabe

Component: Nonepool
Owner: set to Chris Newbold

comment:2 Changed 8 years ago by Steven Watanabe

Resolution: fixed
Status: newclosed

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

comment:3 Changed 8 years ago by Marshall Clow

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

comment:4 Changed 3 years ago by serg_joker@…

Milestone: Boost 1.43.0Boost 1.61.0
Resolution: fixed
Severity: ProblemRegression
Status: closedreopened
Version: Boost 1.44.0Boost 1.60.0

Reproduced again. MSVC 2015 Update 1 boost 1.60

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

comment:5 Changed 3 years ago by Sergey Pastukhov <serg_joker@…>

Cc: serg_joker@… added
Note: See TracTickets for help on using tickets.