From: Fred P. Jr. <fp...@us...> - 2003-10-28 13:23:16
|
--- Nickolay Samofatov <sk...@bs...> wrote: >>> Aren't FB 's global delete operators defined for all >>> platforms, not just GNU/linux? ... >> Can somebody please confirm or disprove Fred's core sentence above? > It is ~60% wrong. My solution fully resolves the problem when Firebird > is compiled with GNU STL. The problem doesn't and didn't exist for > MSVC environment. Hi Nickolay, What happens if a user application defines its own global delete operators and then links in the FB client library? Are you saying there would be no problem? If you agree this would be a problem, then does your patch resolve this case as well as the GNU STL case? I agree the GNU STL problem wouldn't exist for MSVC, but isn't there still a problem where a Win32 FB app. defines its own delete operators. Perhaps I'm missing something about the Win32 build, but I just checked src/common/classes/alloc.cpp and I see two global delete operators defined near the end of the file (below). I don't see any "#ifndef WIN_NT/#endif" around these two definitions, so why would they not be defined in the Win32 client library? Is alloc.cpp not part of the Win32 client library? void operator delete(void* mem) throw() { Firebird::MemoryPool::globalFree(mem); } void operator delete[](void* mem) throw() { Firebird::MemoryPool::globalFree(mem); } Thanks, ---Fred P. |