Team

I hit a crash while testing a DLL compiled from the GIT branch marked
"ASCII + misc fixes". I used CMake 2.6.4 to generate code for VS 2008
with ENABLE_ASCII_MODE | DISABLE_MULTITHREADING.

It appears that (under certain circumstances) DLLMain implemented in
ThreadLocal.cpp gets invoked with fdwReason=3 (DLL_THREAD_DETACH) more
than once. As my test is compiled with DISABLE_MULTITHREADING,
UnregisterCurrentThread() attempts to unregister the same (current)
thread more than once, which causes Access Violation with NULL
pointers or pointers to 0xFEEEFEEE (freed memory).

As a stopgap, I used the fix below.

Regards
Celto

-------------------------
1) in _ThreadLocal::~_ThreadLocal():
replace this line:
           delete _internal;
with:
        _CLDELETE(_internal);
        _CLDELETE(threadData);

2) in _ThreadLocal::setNull()
add this check:
                if (_internal == NULL ){
                        return;
                }

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
CLucene-developers mailing list
CLucene-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/clucene-developers

Reply via email to