]> git.saurik.com Git - wxWidgets.git/blame - docs/msw/issues.txt
Additional makefiles; changes for compilation with BC++ and GnuWin32
[wxWidgets.git] / docs / msw / issues.txt
CommitLineData
2bda0e17
KB
1Current issues and bugs
2-----------------------
3
4Debugging code
5--------------
6
7wxDebugContext and global memory operators doesn't work correctly,
8for different (unresolved) reasons on different compilers.
9
101) In VC++ 5.0, if you use wxDebugAlloc for new and wxDebugFree
11for delete, you get a crash to do with deallocating the debug
12buffer in wxDebugContext. So although the global operators are
13defined, they are #ifdefed to just call malloc and free to avoid
14the problem. This means that non-object memory checking doesn't work.
15The problem does seem to be something to do with a pointer
16mysteriously changing its address, very similar to 2).
17
182) In BC++ 4.5, there isn't a crash, but instead the ofstream
19pointer passed to SetStream from SetFile (which is called in
20memcheck.cpp) gets mysteriously changed as it's passed to SetStream.
21This means that when counting the number of outstanding memory
22blocks, we can't compare the allocated block with m_debugStream
23to say 'ignore this block because we can't free it before the
24very end of the application'. Therefore it always looks like
25there's a memory leak of one object, in memory.cpp, unless you
26don't call wxDebugContext::SetFile.
27
28The fact that pointers appear to change in both cases must
29indicate a common problem and solution. If we could use the
30standard global memory operators for ofstream and
31wxDebugStreamBuf it might help, but I don't know how to do that -
32I've redefined 'new' throughout as WXDEBUG_NEW (which is itself
33defined as the 3-argument operator).
34
884360bc
JS
35Owner-draw menus
36----------------
37
38If USE_OWNER_DRAWN = 1 and you create a wxMenu, you get 'all bets
39are off' memory checking warnings from wxWindows.
40