|
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.
|