
AMDG Jonathan Leonard wrote:
It's called with 5 different data structures (all with a different size). I'm not exactly sure the distribution of these but can measure it if that would be of use. Here are the [obfuscated but structurally-equivalent] types:
struct T1 { C* _p; boost::function<void (int, bool)> _f; unsigned __int64 _offset1; unsigned __int64 _offset2; boost::shared_ptr<std::vector<BYTE, VirtualAllocator<BYTE>>> _vec; };
struct T2 { boost::function<void (bool)> _f; };
struct T3 { C* _p; C* _p2; };
struct T4 { C* _p; C* _p2; unsigned int _i; unsigned int _i2; C* _p3; unsigned int _i3; C* _p4; int _i4; };
struct T5 { C* _p; int _i; int _i2; unsigned int _i3; unsigned int _i4; };
Which of these causes problems? Or do the pools all get corrupted? I've just tried running about 35 billion 8-byte allocations without any problems. In Christ, Steven Watanabe