Fix a memory leak when using non-wx threads
The wxThreadSpecificInfo object created by wxThreadSpecificInfo::Get() was only released by the wxThreadInternal's cleanup, which meant that it was leaked if wxThreadSpecificInfo::Get() was called by a thread not created by wxThread, e.g. when using std::async or std::thread. Fix this by simply using C++11 thread_local and removing the entire wxThreadSpecificInfo machinery entirely. See #23535. Closes #23543.
This commit is contained in:
parent
e85b431686
commit
d666d1e222
17 changed files with 15 additions and 272 deletions
17
Makefile.in
17
Makefile.in
|
|
@ -902,7 +902,6 @@ ALL_BASE_SOURCES = \
|
||||||
src/common/tarstrm.cpp \
|
src/common/tarstrm.cpp \
|
||||||
src/common/textbuf.cpp \
|
src/common/textbuf.cpp \
|
||||||
src/common/textfile.cpp \
|
src/common/textfile.cpp \
|
||||||
src/common/threadinfo.cpp \
|
|
||||||
src/common/time.cpp \
|
src/common/time.cpp \
|
||||||
src/common/timercmn.cpp \
|
src/common/timercmn.cpp \
|
||||||
src/common/timerimpl.cpp \
|
src/common/timerimpl.cpp \
|
||||||
|
|
@ -1108,7 +1107,6 @@ MONODLL_OBJECTS = \
|
||||||
monodll_tarstrm.o \
|
monodll_tarstrm.o \
|
||||||
monodll_textbuf.o \
|
monodll_textbuf.o \
|
||||||
monodll_textfile.o \
|
monodll_textfile.o \
|
||||||
monodll_threadinfo.o \
|
|
||||||
monodll_time.o \
|
monodll_time.o \
|
||||||
monodll_timercmn.o \
|
monodll_timercmn.o \
|
||||||
monodll_timerimpl.o \
|
monodll_timerimpl.o \
|
||||||
|
|
@ -1268,7 +1266,6 @@ MONOLIB_OBJECTS = \
|
||||||
monolib_tarstrm.o \
|
monolib_tarstrm.o \
|
||||||
monolib_textbuf.o \
|
monolib_textbuf.o \
|
||||||
monolib_textfile.o \
|
monolib_textfile.o \
|
||||||
monolib_threadinfo.o \
|
|
||||||
monolib_time.o \
|
monolib_time.o \
|
||||||
monolib_timercmn.o \
|
monolib_timercmn.o \
|
||||||
monolib_timerimpl.o \
|
monolib_timerimpl.o \
|
||||||
|
|
@ -1397,7 +1394,6 @@ BASEDLL_OBJECTS = \
|
||||||
basedll_tarstrm.o \
|
basedll_tarstrm.o \
|
||||||
basedll_textbuf.o \
|
basedll_textbuf.o \
|
||||||
basedll_textfile.o \
|
basedll_textfile.o \
|
||||||
basedll_threadinfo.o \
|
|
||||||
basedll_time.o \
|
basedll_time.o \
|
||||||
basedll_timercmn.o \
|
basedll_timercmn.o \
|
||||||
basedll_timerimpl.o \
|
basedll_timerimpl.o \
|
||||||
|
|
@ -1508,7 +1504,6 @@ BASELIB_OBJECTS = \
|
||||||
baselib_tarstrm.o \
|
baselib_tarstrm.o \
|
||||||
baselib_textbuf.o \
|
baselib_textbuf.o \
|
||||||
baselib_textfile.o \
|
baselib_textfile.o \
|
||||||
baselib_threadinfo.o \
|
|
||||||
baselib_time.o \
|
baselib_time.o \
|
||||||
baselib_timercmn.o \
|
baselib_timercmn.o \
|
||||||
baselib_timerimpl.o \
|
baselib_timerimpl.o \
|
||||||
|
|
@ -14888,9 +14883,6 @@ monodll_textbuf.o: $(srcdir)/src/common/textbuf.cpp $(MONODLL_ODEP)
|
||||||
monodll_textfile.o: $(srcdir)/src/common/textfile.cpp $(MONODLL_ODEP)
|
monodll_textfile.o: $(srcdir)/src/common/textfile.cpp $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/textfile.cpp
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/textfile.cpp
|
||||||
|
|
||||||
monodll_threadinfo.o: $(srcdir)/src/common/threadinfo.cpp $(MONODLL_ODEP)
|
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/threadinfo.cpp
|
|
||||||
|
|
||||||
monodll_time.o: $(srcdir)/src/common/time.cpp $(MONODLL_ODEP)
|
monodll_time.o: $(srcdir)/src/common/time.cpp $(MONODLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/time.cpp
|
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/time.cpp
|
||||||
|
|
||||||
|
|
@ -19631,9 +19623,6 @@ monolib_textbuf.o: $(srcdir)/src/common/textbuf.cpp $(MONOLIB_ODEP)
|
||||||
monolib_textfile.o: $(srcdir)/src/common/textfile.cpp $(MONOLIB_ODEP)
|
monolib_textfile.o: $(srcdir)/src/common/textfile.cpp $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/textfile.cpp
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/textfile.cpp
|
||||||
|
|
||||||
monolib_threadinfo.o: $(srcdir)/src/common/threadinfo.cpp $(MONOLIB_ODEP)
|
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/threadinfo.cpp
|
|
||||||
|
|
||||||
monolib_time.o: $(srcdir)/src/common/time.cpp $(MONOLIB_ODEP)
|
monolib_time.o: $(srcdir)/src/common/time.cpp $(MONOLIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/time.cpp
|
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/time.cpp
|
||||||
|
|
||||||
|
|
@ -24374,9 +24363,6 @@ basedll_textbuf.o: $(srcdir)/src/common/textbuf.cpp $(BASEDLL_ODEP)
|
||||||
basedll_textfile.o: $(srcdir)/src/common/textfile.cpp $(BASEDLL_ODEP)
|
basedll_textfile.o: $(srcdir)/src/common/textfile.cpp $(BASEDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/textfile.cpp
|
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/textfile.cpp
|
||||||
|
|
||||||
basedll_threadinfo.o: $(srcdir)/src/common/threadinfo.cpp $(BASEDLL_ODEP)
|
|
||||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/threadinfo.cpp
|
|
||||||
|
|
||||||
basedll_time.o: $(srcdir)/src/common/time.cpp $(BASEDLL_ODEP)
|
basedll_time.o: $(srcdir)/src/common/time.cpp $(BASEDLL_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/time.cpp
|
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/time.cpp
|
||||||
|
|
||||||
|
|
@ -24857,9 +24843,6 @@ baselib_textbuf.o: $(srcdir)/src/common/textbuf.cpp $(BASELIB_ODEP)
|
||||||
baselib_textfile.o: $(srcdir)/src/common/textfile.cpp $(BASELIB_ODEP)
|
baselib_textfile.o: $(srcdir)/src/common/textfile.cpp $(BASELIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/textfile.cpp
|
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/textfile.cpp
|
||||||
|
|
||||||
baselib_threadinfo.o: $(srcdir)/src/common/threadinfo.cpp $(BASELIB_ODEP)
|
|
||||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/threadinfo.cpp
|
|
||||||
|
|
||||||
baselib_time.o: $(srcdir)/src/common/time.cpp $(BASELIB_ODEP)
|
baselib_time.o: $(srcdir)/src/common/time.cpp $(BASELIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/time.cpp
|
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/time.cpp
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -552,7 +552,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
||||||
src/common/tarstrm.cpp
|
src/common/tarstrm.cpp
|
||||||
src/common/textbuf.cpp
|
src/common/textbuf.cpp
|
||||||
src/common/textfile.cpp
|
src/common/textfile.cpp
|
||||||
src/common/threadinfo.cpp
|
|
||||||
src/common/time.cpp
|
src/common/time.cpp
|
||||||
src/common/timercmn.cpp
|
src/common/timercmn.cpp
|
||||||
src/common/timerimpl.cpp
|
src/common/timerimpl.cpp
|
||||||
|
|
|
||||||
|
|
@ -465,7 +465,6 @@ set(BASE_CMN_SRC
|
||||||
src/common/tarstrm.cpp
|
src/common/tarstrm.cpp
|
||||||
src/common/textbuf.cpp
|
src/common/textbuf.cpp
|
||||||
src/common/textfile.cpp
|
src/common/textfile.cpp
|
||||||
src/common/threadinfo.cpp
|
|
||||||
src/common/time.cpp
|
src/common/time.cpp
|
||||||
src/common/timercmn.cpp
|
src/common/timercmn.cpp
|
||||||
src/common/timerimpl.cpp
|
src/common/timerimpl.cpp
|
||||||
|
|
|
||||||
|
|
@ -484,7 +484,6 @@ BASE_CMN_SRC =
|
||||||
src/common/tarstrm.cpp
|
src/common/tarstrm.cpp
|
||||||
src/common/textbuf.cpp
|
src/common/textbuf.cpp
|
||||||
src/common/textfile.cpp
|
src/common/textfile.cpp
|
||||||
src/common/threadinfo.cpp
|
|
||||||
src/common/time.cpp
|
src/common/time.cpp
|
||||||
src/common/timercmn.cpp
|
src/common/timercmn.cpp
|
||||||
src/common/timerimpl.cpp
|
src/common/timerimpl.cpp
|
||||||
|
|
|
||||||
|
|
@ -475,7 +475,6 @@ MONODLL_OBJECTS = \
|
||||||
$(OBJS)\monodll_tarstrm.o \
|
$(OBJS)\monodll_tarstrm.o \
|
||||||
$(OBJS)\monodll_textbuf.o \
|
$(OBJS)\monodll_textbuf.o \
|
||||||
$(OBJS)\monodll_textfile.o \
|
$(OBJS)\monodll_textfile.o \
|
||||||
$(OBJS)\monodll_threadinfo.o \
|
|
||||||
$(OBJS)\monodll_time.o \
|
$(OBJS)\monodll_time.o \
|
||||||
$(OBJS)\monodll_timercmn.o \
|
$(OBJS)\monodll_timercmn.o \
|
||||||
$(OBJS)\monodll_timerimpl.o \
|
$(OBJS)\monodll_timerimpl.o \
|
||||||
|
|
@ -637,7 +636,6 @@ MONOLIB_OBJECTS = \
|
||||||
$(OBJS)\monolib_tarstrm.o \
|
$(OBJS)\monolib_tarstrm.o \
|
||||||
$(OBJS)\monolib_textbuf.o \
|
$(OBJS)\monolib_textbuf.o \
|
||||||
$(OBJS)\monolib_textfile.o \
|
$(OBJS)\monolib_textfile.o \
|
||||||
$(OBJS)\monolib_threadinfo.o \
|
|
||||||
$(OBJS)\monolib_time.o \
|
$(OBJS)\monolib_time.o \
|
||||||
$(OBJS)\monolib_timercmn.o \
|
$(OBJS)\monolib_timercmn.o \
|
||||||
$(OBJS)\monolib_timerimpl.o \
|
$(OBJS)\monolib_timerimpl.o \
|
||||||
|
|
@ -787,7 +785,6 @@ BASEDLL_OBJECTS = \
|
||||||
$(OBJS)\basedll_tarstrm.o \
|
$(OBJS)\basedll_tarstrm.o \
|
||||||
$(OBJS)\basedll_textbuf.o \
|
$(OBJS)\basedll_textbuf.o \
|
||||||
$(OBJS)\basedll_textfile.o \
|
$(OBJS)\basedll_textfile.o \
|
||||||
$(OBJS)\basedll_threadinfo.o \
|
|
||||||
$(OBJS)\basedll_time.o \
|
$(OBJS)\basedll_time.o \
|
||||||
$(OBJS)\basedll_timercmn.o \
|
$(OBJS)\basedll_timercmn.o \
|
||||||
$(OBJS)\basedll_timerimpl.o \
|
$(OBJS)\basedll_timerimpl.o \
|
||||||
|
|
@ -918,7 +915,6 @@ BASELIB_OBJECTS = \
|
||||||
$(OBJS)\baselib_tarstrm.o \
|
$(OBJS)\baselib_tarstrm.o \
|
||||||
$(OBJS)\baselib_textbuf.o \
|
$(OBJS)\baselib_textbuf.o \
|
||||||
$(OBJS)\baselib_textfile.o \
|
$(OBJS)\baselib_textfile.o \
|
||||||
$(OBJS)\baselib_threadinfo.o \
|
|
||||||
$(OBJS)\baselib_time.o \
|
$(OBJS)\baselib_time.o \
|
||||||
$(OBJS)\baselib_timercmn.o \
|
$(OBJS)\baselib_timercmn.o \
|
||||||
$(OBJS)\baselib_timerimpl.o \
|
$(OBJS)\baselib_timerimpl.o \
|
||||||
|
|
@ -7170,9 +7166,6 @@ $(OBJS)\monodll_textbuf.o: ../../src/common/textbuf.cpp
|
||||||
$(OBJS)\monodll_textfile.o: ../../src/common/textfile.cpp
|
$(OBJS)\monodll_textfile.o: ../../src/common/textfile.cpp
|
||||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\monodll_threadinfo.o: ../../src/common/threadinfo.cpp
|
|
||||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
|
||||||
|
|
||||||
$(OBJS)\monodll_time.o: ../../src/common/time.cpp
|
$(OBJS)\monodll_time.o: ../../src/common/time.cpp
|
||||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
|
@ -9764,9 +9757,6 @@ $(OBJS)\monolib_textbuf.o: ../../src/common/textbuf.cpp
|
||||||
$(OBJS)\monolib_textfile.o: ../../src/common/textfile.cpp
|
$(OBJS)\monolib_textfile.o: ../../src/common/textfile.cpp
|
||||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\monolib_threadinfo.o: ../../src/common/threadinfo.cpp
|
|
||||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
|
||||||
|
|
||||||
$(OBJS)\monolib_time.o: ../../src/common/time.cpp
|
$(OBJS)\monolib_time.o: ../../src/common/time.cpp
|
||||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
|
@ -12358,9 +12348,6 @@ $(OBJS)\basedll_textbuf.o: ../../src/common/textbuf.cpp
|
||||||
$(OBJS)\basedll_textfile.o: ../../src/common/textfile.cpp
|
$(OBJS)\basedll_textfile.o: ../../src/common/textfile.cpp
|
||||||
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\basedll_threadinfo.o: ../../src/common/threadinfo.cpp
|
|
||||||
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
|
||||||
|
|
||||||
$(OBJS)\basedll_time.o: ../../src/common/time.cpp
|
$(OBJS)\basedll_time.o: ../../src/common/time.cpp
|
||||||
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
|
@ -12703,9 +12690,6 @@ $(OBJS)\baselib_textbuf.o: ../../src/common/textbuf.cpp
|
||||||
$(OBJS)\baselib_textfile.o: ../../src/common/textfile.cpp
|
$(OBJS)\baselib_textfile.o: ../../src/common/textfile.cpp
|
||||||
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\baselib_threadinfo.o: ../../src/common/threadinfo.cpp
|
|
||||||
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
|
||||||
|
|
||||||
$(OBJS)\baselib_time.o: ../../src/common/time.cpp
|
$(OBJS)\baselib_time.o: ../../src/common/time.cpp
|
||||||
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -511,7 +511,6 @@ MONODLL_OBJECTS = \
|
||||||
$(OBJS)\monodll_tarstrm.obj \
|
$(OBJS)\monodll_tarstrm.obj \
|
||||||
$(OBJS)\monodll_textbuf.obj \
|
$(OBJS)\monodll_textbuf.obj \
|
||||||
$(OBJS)\monodll_textfile.obj \
|
$(OBJS)\monodll_textfile.obj \
|
||||||
$(OBJS)\monodll_threadinfo.obj \
|
|
||||||
$(OBJS)\monodll_time.obj \
|
$(OBJS)\monodll_time.obj \
|
||||||
$(OBJS)\monodll_timercmn.obj \
|
$(OBJS)\monodll_timercmn.obj \
|
||||||
$(OBJS)\monodll_timerimpl.obj \
|
$(OBJS)\monodll_timerimpl.obj \
|
||||||
|
|
@ -682,7 +681,6 @@ MONOLIB_OBJECTS = \
|
||||||
$(OBJS)\monolib_tarstrm.obj \
|
$(OBJS)\monolib_tarstrm.obj \
|
||||||
$(OBJS)\monolib_textbuf.obj \
|
$(OBJS)\monolib_textbuf.obj \
|
||||||
$(OBJS)\monolib_textfile.obj \
|
$(OBJS)\monolib_textfile.obj \
|
||||||
$(OBJS)\monolib_threadinfo.obj \
|
|
||||||
$(OBJS)\monolib_time.obj \
|
$(OBJS)\monolib_time.obj \
|
||||||
$(OBJS)\monolib_timercmn.obj \
|
$(OBJS)\monolib_timercmn.obj \
|
||||||
$(OBJS)\monolib_timerimpl.obj \
|
$(OBJS)\monolib_timerimpl.obj \
|
||||||
|
|
@ -841,7 +839,6 @@ BASEDLL_OBJECTS = \
|
||||||
$(OBJS)\basedll_tarstrm.obj \
|
$(OBJS)\basedll_tarstrm.obj \
|
||||||
$(OBJS)\basedll_textbuf.obj \
|
$(OBJS)\basedll_textbuf.obj \
|
||||||
$(OBJS)\basedll_textfile.obj \
|
$(OBJS)\basedll_textfile.obj \
|
||||||
$(OBJS)\basedll_threadinfo.obj \
|
|
||||||
$(OBJS)\basedll_time.obj \
|
$(OBJS)\basedll_time.obj \
|
||||||
$(OBJS)\basedll_timercmn.obj \
|
$(OBJS)\basedll_timercmn.obj \
|
||||||
$(OBJS)\basedll_timerimpl.obj \
|
$(OBJS)\basedll_timerimpl.obj \
|
||||||
|
|
@ -982,7 +979,6 @@ BASELIB_OBJECTS = \
|
||||||
$(OBJS)\baselib_tarstrm.obj \
|
$(OBJS)\baselib_tarstrm.obj \
|
||||||
$(OBJS)\baselib_textbuf.obj \
|
$(OBJS)\baselib_textbuf.obj \
|
||||||
$(OBJS)\baselib_textfile.obj \
|
$(OBJS)\baselib_textfile.obj \
|
||||||
$(OBJS)\baselib_threadinfo.obj \
|
|
||||||
$(OBJS)\baselib_time.obj \
|
$(OBJS)\baselib_time.obj \
|
||||||
$(OBJS)\baselib_timercmn.obj \
|
$(OBJS)\baselib_timercmn.obj \
|
||||||
$(OBJS)\baselib_timerimpl.obj \
|
$(OBJS)\baselib_timerimpl.obj \
|
||||||
|
|
@ -7627,9 +7623,6 @@ $(OBJS)\monodll_textbuf.obj: ..\..\src\common\textbuf.cpp
|
||||||
$(OBJS)\monodll_textfile.obj: ..\..\src\common\textfile.cpp
|
$(OBJS)\monodll_textfile.obj: ..\..\src\common\textfile.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\textfile.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\textfile.cpp
|
||||||
|
|
||||||
$(OBJS)\monodll_threadinfo.obj: ..\..\src\common\threadinfo.cpp
|
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\threadinfo.cpp
|
|
||||||
|
|
||||||
$(OBJS)\monodll_time.obj: ..\..\src\common\time.cpp
|
$(OBJS)\monodll_time.obj: ..\..\src\common\time.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\time.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\time.cpp
|
||||||
|
|
||||||
|
|
@ -10221,9 +10214,6 @@ $(OBJS)\monolib_textbuf.obj: ..\..\src\common\textbuf.cpp
|
||||||
$(OBJS)\monolib_textfile.obj: ..\..\src\common\textfile.cpp
|
$(OBJS)\monolib_textfile.obj: ..\..\src\common\textfile.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\textfile.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\textfile.cpp
|
||||||
|
|
||||||
$(OBJS)\monolib_threadinfo.obj: ..\..\src\common\threadinfo.cpp
|
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\threadinfo.cpp
|
|
||||||
|
|
||||||
$(OBJS)\monolib_time.obj: ..\..\src\common\time.cpp
|
$(OBJS)\monolib_time.obj: ..\..\src\common\time.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\time.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\time.cpp
|
||||||
|
|
||||||
|
|
@ -12815,9 +12805,6 @@ $(OBJS)\basedll_textbuf.obj: ..\..\src\common\textbuf.cpp
|
||||||
$(OBJS)\basedll_textfile.obj: ..\..\src\common\textfile.cpp
|
$(OBJS)\basedll_textfile.obj: ..\..\src\common\textfile.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\textfile.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\textfile.cpp
|
||||||
|
|
||||||
$(OBJS)\basedll_threadinfo.obj: ..\..\src\common\threadinfo.cpp
|
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\threadinfo.cpp
|
|
||||||
|
|
||||||
$(OBJS)\basedll_time.obj: ..\..\src\common\time.cpp
|
$(OBJS)\basedll_time.obj: ..\..\src\common\time.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\time.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\time.cpp
|
||||||
|
|
||||||
|
|
@ -13160,9 +13147,6 @@ $(OBJS)\baselib_textbuf.obj: ..\..\src\common\textbuf.cpp
|
||||||
$(OBJS)\baselib_textfile.obj: ..\..\src\common\textfile.cpp
|
$(OBJS)\baselib_textfile.obj: ..\..\src\common\textfile.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\textfile.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\textfile.cpp
|
||||||
|
|
||||||
$(OBJS)\baselib_threadinfo.obj: ..\..\src\common\threadinfo.cpp
|
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\threadinfo.cpp
|
|
||||||
|
|
||||||
$(OBJS)\baselib_time.obj: ..\..\src\common\time.cpp
|
$(OBJS)\baselib_time.obj: ..\..\src\common\time.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\time.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\time.cpp
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -540,7 +540,6 @@
|
||||||
<ClCompile Include="..\..\src\common\tarstrm.cpp" />
|
<ClCompile Include="..\..\src\common\tarstrm.cpp" />
|
||||||
<ClCompile Include="..\..\src\common\textbuf.cpp" />
|
<ClCompile Include="..\..\src\common\textbuf.cpp" />
|
||||||
<ClCompile Include="..\..\src\common\textfile.cpp" />
|
<ClCompile Include="..\..\src\common\textfile.cpp" />
|
||||||
<ClCompile Include="..\..\src\common\threadinfo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\common\time.cpp" />
|
<ClCompile Include="..\..\src\common\time.cpp" />
|
||||||
<ClCompile Include="..\..\src\common\timercmn.cpp" />
|
<ClCompile Include="..\..\src\common\timercmn.cpp" />
|
||||||
<ClCompile Include="..\..\src\common\timerimpl.cpp" />
|
<ClCompile Include="..\..\src\common\timerimpl.cpp" />
|
||||||
|
|
|
||||||
|
|
@ -234,9 +234,6 @@
|
||||||
<ClCompile Include="..\..\src\common\textfile.cpp">
|
<ClCompile Include="..\..\src\common\textfile.cpp">
|
||||||
<Filter>Common Sources</Filter>
|
<Filter>Common Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\threadinfo.cpp">
|
|
||||||
<Filter>Common Sources</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\common\time.cpp">
|
<ClCompile Include="..\..\src\common\time.cpp">
|
||||||
<Filter>Common Sources</Filter>
|
<Filter>Common Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
|
||||||
|
|
@ -1579,7 +1579,6 @@
|
||||||
CD35A576FD363FD49C3AC4B4 /* LexAda.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 375E7A99FF4C38FA9E223772 /* LexAda.cxx */; };
|
CD35A576FD363FD49C3AC4B4 /* LexAda.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 375E7A99FF4C38FA9E223772 /* LexAda.cxx */; };
|
||||||
F80C2290D67B345F9CF60085 /* dpycmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A37E3D1FB4FB31AFAE88665A /* dpycmn.cpp */; };
|
F80C2290D67B345F9CF60085 /* dpycmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A37E3D1FB4FB31AFAE88665A /* dpycmn.cpp */; };
|
||||||
FECC98B53C0F3106AB04E6A0 /* tif_fax3.c in Sources */ = {isa = PBXBuildFile; fileRef = 30FD1048328234E59D319863 /* tif_fax3.c */; };
|
FECC98B53C0F3106AB04E6A0 /* tif_fax3.c in Sources */ = {isa = PBXBuildFile; fileRef = 30FD1048328234E59D319863 /* tif_fax3.c */; };
|
||||||
B20B7313102232A4B3E01ABA /* threadinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE40B073C95D3A7497952D8F /* threadinfo.cpp */; };
|
|
||||||
8B38C6C416BA3A51B37F60C5 /* statlinecmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 292C08C0A1203654ABAA2CB1 /* statlinecmn.cpp */; };
|
8B38C6C416BA3A51B37F60C5 /* statlinecmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 292C08C0A1203654ABAA2CB1 /* statlinecmn.cpp */; };
|
||||||
5B5B8DF915D438AA9FCEB3A0 /* imagall.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FFDFB4D208F37569AC548B0 /* imagall.cpp */; };
|
5B5B8DF915D438AA9FCEB3A0 /* imagall.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FFDFB4D208F37569AC548B0 /* imagall.cpp */; };
|
||||||
9744994E8A813AA6938A7CE4 /* textcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3DFD4F32E48039C3B9A66355 /* textcmn.cpp */; };
|
9744994E8A813AA6938A7CE4 /* textcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3DFD4F32E48039C3B9A66355 /* textcmn.cpp */; };
|
||||||
|
|
@ -1742,7 +1741,6 @@
|
||||||
01D4C5F2147F3942A7CE91AB /* icon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5DAF1F49F0F3F41A427A21D /* icon.cpp */; };
|
01D4C5F2147F3942A7CE91AB /* icon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5DAF1F49F0F3F41A427A21D /* icon.cpp */; };
|
||||||
AD4A533C4E1633598A6D5C71 /* textentrycmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5F63BF9430CE371DA04AC900 /* textentrycmn.cpp */; };
|
AD4A533C4E1633598A6D5C71 /* textentrycmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5F63BF9430CE371DA04AC900 /* textentrycmn.cpp */; };
|
||||||
8966F77CC97B3ED780C8F138 /* xh_bmpcbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8826A683573F35EA9789612C /* xh_bmpcbox.cpp */; };
|
8966F77CC97B3ED780C8F138 /* xh_bmpcbox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8826A683573F35EA9789612C /* xh_bmpcbox.cpp */; };
|
||||||
B20B7313102232A4B3E01ABB /* threadinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE40B073C95D3A7497952D8F /* threadinfo.cpp */; };
|
|
||||||
894D43C8F224394FB3171F28 /* jcapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = 6EDDEEEC981133E8BA6A3998 /* jcapimin.c */; };
|
894D43C8F224394FB3171F28 /* jcapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = 6EDDEEEC981133E8BA6A3998 /* jcapimin.c */; };
|
||||||
7625D908B2CD34C78243BA8F /* settcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE3DC4AA47D39ACA83F27C0 /* settcmn.cpp */; };
|
7625D908B2CD34C78243BA8F /* settcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE3DC4AA47D39ACA83F27C0 /* settcmn.cpp */; };
|
||||||
3ED6F4B64C283232A79423CF /* dircmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EC9B6DFBF2F73917A99361C5 /* dircmn.cpp */; };
|
3ED6F4B64C283232A79423CF /* dircmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EC9B6DFBF2F73917A99361C5 /* dircmn.cpp */; };
|
||||||
|
|
@ -2984,7 +2982,6 @@
|
||||||
6A081BF19747385CB4C18781 /* radiobut_osx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5FFCB72168FD31DE86A1B674 /* radiobut_osx.cpp */; };
|
6A081BF19747385CB4C18781 /* radiobut_osx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5FFCB72168FD31DE86A1B674 /* radiobut_osx.cpp */; };
|
||||||
41943A8F82723027A151A46A /* fileconf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 61DA2A4C0D143CBE804BB8A1 /* fileconf.cpp */; };
|
41943A8F82723027A151A46A /* fileconf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 61DA2A4C0D143CBE804BB8A1 /* fileconf.cpp */; };
|
||||||
9CA687845B3F30CCA44A89D2 /* choicbkg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 09F8B0818C3A3248A26EE05D /* choicbkg.cpp */; };
|
9CA687845B3F30CCA44A89D2 /* choicbkg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 09F8B0818C3A3248A26EE05D /* choicbkg.cpp */; };
|
||||||
B20B7313102232A4B3E01ABC /* threadinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE40B073C95D3A7497952D8F /* threadinfo.cpp */; };
|
|
||||||
EEB0B28903693C7E9D071931 /* glcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E08A51FA8D8A361681B07295 /* glcmn.cpp */; };
|
EEB0B28903693C7E9D071931 /* glcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E08A51FA8D8A361681B07295 /* glcmn.cpp */; };
|
||||||
CB078622E90F33BE9D131136 /* buttonbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5612DBC4125B379DA2B28824 /* buttonbar.cpp */; };
|
CB078622E90F33BE9D131136 /* buttonbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5612DBC4125B379DA2B28824 /* buttonbar.cpp */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
@ -4119,7 +4116,6 @@
|
||||||
8FFDFB4D208F37569AC548B0 /* imagall.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = imagall.cpp; path = ../../src/common/imagall.cpp; sourceTree = SOURCE_ROOT; };
|
8FFDFB4D208F37569AC548B0 /* imagall.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = imagall.cpp; path = ../../src/common/imagall.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
BFA50405234C30EEA3F77F17 /* filepickercmn.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = filepickercmn.cpp; path = ../../src/common/filepickercmn.cpp; sourceTree = SOURCE_ROOT; };
|
BFA50405234C30EEA3F77F17 /* filepickercmn.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = filepickercmn.cpp; path = ../../src/common/filepickercmn.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
E9D416E57FEB3F0B95734FF6 /* dirdlgg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = dirdlgg.cpp; path = ../../src/generic/dirdlgg.cpp; sourceTree = SOURCE_ROOT; };
|
E9D416E57FEB3F0B95734FF6 /* dirdlgg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = dirdlgg.cpp; path = ../../src/generic/dirdlgg.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
DE40B073C95D3A7497952D8F /* threadinfo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = threadinfo.cpp; path = ../../src/common/threadinfo.cpp; sourceTree = SOURCE_ROOT; };
|
|
||||||
8E6F9D4319F639BE89E5A82F /* ScintillaWX.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ScintillaWX.cpp; path = ../../src/stc/ScintillaWX.cpp; sourceTree = SOURCE_ROOT; };
|
8E6F9D4319F639BE89E5A82F /* ScintillaWX.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ScintillaWX.cpp; path = ../../src/stc/ScintillaWX.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
F7440859617F3B47AF4D3817 /* valgen.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = valgen.cpp; path = ../../src/common/valgen.cpp; sourceTree = SOURCE_ROOT; };
|
F7440859617F3B47AF4D3817 /* valgen.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = valgen.cpp; path = ../../src/common/valgen.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
E8BD1489D95E3FD78B200B1B /* commandlinkbuttong.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = commandlinkbuttong.cpp; path = ../../src/generic/commandlinkbuttong.cpp; sourceTree = SOURCE_ROOT; };
|
E8BD1489D95E3FD78B200B1B /* commandlinkbuttong.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = commandlinkbuttong.cpp; path = ../../src/generic/commandlinkbuttong.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
|
@ -6390,7 +6386,6 @@
|
||||||
C0F7BBD216853E718C9F23D9 /* tarstrm.cpp */,
|
C0F7BBD216853E718C9F23D9 /* tarstrm.cpp */,
|
||||||
701B84EE7C043B539FF5195A /* textbuf.cpp */,
|
701B84EE7C043B539FF5195A /* textbuf.cpp */,
|
||||||
0903EE9B3793303285FF96E3 /* textfile.cpp */,
|
0903EE9B3793303285FF96E3 /* textfile.cpp */,
|
||||||
DE40B073C95D3A7497952D8F /* threadinfo.cpp */,
|
|
||||||
5B9586328A1F3C4BA0390AA5 /* time.cpp */,
|
5B9586328A1F3C4BA0390AA5 /* time.cpp */,
|
||||||
7195E665E0F233839B967FC9 /* timercmn.cpp */,
|
7195E665E0F233839B967FC9 /* timercmn.cpp */,
|
||||||
0401B7302088357BB6B7F16F /* timerimpl.cpp */,
|
0401B7302088357BB6B7F16F /* timerimpl.cpp */,
|
||||||
|
|
@ -7904,7 +7899,6 @@
|
||||||
9FB1E1763EFA334CA0C07C4A /* tarstrm.cpp in Sources */,
|
9FB1E1763EFA334CA0C07C4A /* tarstrm.cpp in Sources */,
|
||||||
2E4747E0736B30569ACD5423 /* textbuf.cpp in Sources */,
|
2E4747E0736B30569ACD5423 /* textbuf.cpp in Sources */,
|
||||||
6167245C417A32179EC37D2E /* textfile.cpp in Sources */,
|
6167245C417A32179EC37D2E /* textfile.cpp in Sources */,
|
||||||
B20B7313102232A4B3E01ABC /* threadinfo.cpp in Sources */,
|
|
||||||
98AD7D0478BA36249B03C624 /* time.cpp in Sources */,
|
98AD7D0478BA36249B03C624 /* time.cpp in Sources */,
|
||||||
7FC3D17B3C853FE58841002E /* timercmn.cpp in Sources */,
|
7FC3D17B3C853FE58841002E /* timercmn.cpp in Sources */,
|
||||||
729091CC33C73C989B4E071B /* timerimpl.cpp in Sources */,
|
729091CC33C73C989B4E071B /* timerimpl.cpp in Sources */,
|
||||||
|
|
@ -8626,7 +8620,6 @@
|
||||||
9FB1E1763EFA334CA0C07C4B /* tarstrm.cpp in Sources */,
|
9FB1E1763EFA334CA0C07C4B /* tarstrm.cpp in Sources */,
|
||||||
2E4747E0736B30569ACD5424 /* textbuf.cpp in Sources */,
|
2E4747E0736B30569ACD5424 /* textbuf.cpp in Sources */,
|
||||||
6167245C417A32179EC37D2D /* textfile.cpp in Sources */,
|
6167245C417A32179EC37D2D /* textfile.cpp in Sources */,
|
||||||
B20B7313102232A4B3E01ABB /* threadinfo.cpp in Sources */,
|
|
||||||
98AD7D0478BA36249B03C623 /* time.cpp in Sources */,
|
98AD7D0478BA36249B03C623 /* time.cpp in Sources */,
|
||||||
7FC3D17B3C853FE58841002D /* timercmn.cpp in Sources */,
|
7FC3D17B3C853FE58841002D /* timercmn.cpp in Sources */,
|
||||||
729091CC33C73C989B4E071A /* timerimpl.cpp in Sources */,
|
729091CC33C73C989B4E071A /* timerimpl.cpp in Sources */,
|
||||||
|
|
@ -9822,7 +9815,6 @@
|
||||||
9FB1E1763EFA334CA0C07C49 /* tarstrm.cpp in Sources */,
|
9FB1E1763EFA334CA0C07C49 /* tarstrm.cpp in Sources */,
|
||||||
2E4747E0736B30569ACD5422 /* textbuf.cpp in Sources */,
|
2E4747E0736B30569ACD5422 /* textbuf.cpp in Sources */,
|
||||||
6167245C417A32179EC37D2F /* textfile.cpp in Sources */,
|
6167245C417A32179EC37D2F /* textfile.cpp in Sources */,
|
||||||
B20B7313102232A4B3E01ABA /* threadinfo.cpp in Sources */,
|
|
||||||
98AD7D0478BA36249B03C625 /* time.cpp in Sources */,
|
98AD7D0478BA36249B03C625 /* time.cpp in Sources */,
|
||||||
7FC3D17B3C853FE58841002F /* timercmn.cpp in Sources */,
|
7FC3D17B3C853FE58841002F /* timercmn.cpp in Sources */,
|
||||||
729091CC33C73C989B4E0719 /* timerimpl.cpp in Sources */,
|
729091CC33C73C989B4E0719 /* timerimpl.cpp in Sources */,
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,6 @@
|
||||||
DDC71B80D562303690FDBE4C /* appcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F01DDE448E4C3983ACCE67FD /* appcmn.cpp */; };
|
DDC71B80D562303690FDBE4C /* appcmn.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F01DDE448E4C3983ACCE67FD /* appcmn.cpp */; };
|
||||||
5417332FE2DB3CD3A647B15D /* cursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF1F491B8A8376E8E2E8182 /* cursor.cpp */; };
|
5417332FE2DB3CD3A647B15D /* cursor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF1F491B8A8376E8E2E8182 /* cursor.cpp */; };
|
||||||
02BB539E2AD63C078DA776B0 /* uiaction_osx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AC6359B01A7B35F6B710ACF8 /* uiaction_osx.cpp */; };
|
02BB539E2AD63C078DA776B0 /* uiaction_osx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AC6359B01A7B35F6B710ACF8 /* uiaction_osx.cpp */; };
|
||||||
B20B7313102232A4B3E01ABA /* threadinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DE40B073C95D3A7497952D8F /* threadinfo.cpp */; };
|
|
||||||
795613831EC8332A83FF26E7 /* string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7E99B35A98D30818120B002 /* string.cpp */; };
|
795613831EC8332A83FF26E7 /* string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7E99B35A98D30818120B002 /* string.cpp */; };
|
||||||
6978D7A20DA93A329DDD1383 /* socket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 40CE02524DD4385AB2C3DF95 /* socket.cpp */; };
|
6978D7A20DA93A329DDD1383 /* socket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 40CE02524DD4385AB2C3DF95 /* socket.cpp */; };
|
||||||
DD1B139EA5AD3F6DB92C0FA8 /* EditModel.cxx in Sources */ = {isa = PBXBuildFile; fileRef = E685D81FB9FF3081B6C5C321 /* EditModel.cxx */; };
|
DD1B139EA5AD3F6DB92C0FA8 /* EditModel.cxx in Sources */ = {isa = PBXBuildFile; fileRef = E685D81FB9FF3081B6C5C321 /* EditModel.cxx */; };
|
||||||
|
|
@ -1811,7 +1810,6 @@
|
||||||
6E855AB3AB08325980871AB4 /* xh_sizer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = xh_sizer.cpp; path = ../../src/xrc/xh_sizer.cpp; sourceTree = SOURCE_ROOT; };
|
6E855AB3AB08325980871AB4 /* xh_sizer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = xh_sizer.cpp; path = ../../src/xrc/xh_sizer.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
A54B80C17F823CB5900AD2E8 /* framecmn.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = framecmn.cpp; path = ../../src/common/framecmn.cpp; sourceTree = SOURCE_ROOT; };
|
A54B80C17F823CB5900AD2E8 /* framecmn.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = framecmn.cpp; path = ../../src/common/framecmn.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
9E8BF36D3A7C309482CBA9EC /* tipwin.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = tipwin.cpp; path = ../../src/generic/tipwin.cpp; sourceTree = SOURCE_ROOT; };
|
9E8BF36D3A7C309482CBA9EC /* tipwin.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = tipwin.cpp; path = ../../src/generic/tipwin.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
DE40B073C95D3A7497952D8F /* threadinfo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = threadinfo.cpp; path = ../../src/common/threadinfo.cpp; sourceTree = SOURCE_ROOT; };
|
|
||||||
81A30C745CA73E30B788B408 /* image.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = image.cpp; path = ../../src/common/image.cpp; sourceTree = SOURCE_ROOT; };
|
81A30C745CA73E30B788B408 /* image.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = image.cpp; path = ../../src/common/image.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
1CABAEA3B48333CB88B40F08 /* LexTCMD.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexTCMD.cxx; path = ../../src/stc/lexilla/lexers/LexTCMD.cxx; sourceTree = SOURCE_ROOT; };
|
1CABAEA3B48333CB88B40F08 /* LexTCMD.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LexTCMD.cxx; path = ../../src/stc/lexilla/lexers/LexTCMD.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
6EDDEEEC981133E8BA6A3998 /* jcapimin.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = ../../src/jpeg/jcapimin.c; sourceTree = SOURCE_ROOT; };
|
6EDDEEEC981133E8BA6A3998 /* jcapimin.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = ../../src/jpeg/jcapimin.c; sourceTree = SOURCE_ROOT; };
|
||||||
|
|
@ -2646,7 +2644,6 @@
|
||||||
C0F7BBD216853E718C9F23D9 /* tarstrm.cpp */,
|
C0F7BBD216853E718C9F23D9 /* tarstrm.cpp */,
|
||||||
701B84EE7C043B539FF5195A /* textbuf.cpp */,
|
701B84EE7C043B539FF5195A /* textbuf.cpp */,
|
||||||
0903EE9B3793303285FF96E3 /* textfile.cpp */,
|
0903EE9B3793303285FF96E3 /* textfile.cpp */,
|
||||||
DE40B073C95D3A7497952D8F /* threadinfo.cpp */,
|
|
||||||
5B9586328A1F3C4BA0390AA5 /* time.cpp */,
|
5B9586328A1F3C4BA0390AA5 /* time.cpp */,
|
||||||
7195E665E0F233839B967FC9 /* timercmn.cpp */,
|
7195E665E0F233839B967FC9 /* timercmn.cpp */,
|
||||||
0401B7302088357BB6B7F16F /* timerimpl.cpp */,
|
0401B7302088357BB6B7F16F /* timerimpl.cpp */,
|
||||||
|
|
@ -3102,7 +3099,6 @@
|
||||||
9FB1E1763EFA334CA0C07C49 /* tarstrm.cpp in Sources */,
|
9FB1E1763EFA334CA0C07C49 /* tarstrm.cpp in Sources */,
|
||||||
2E4747E0736B30569ACD5422 /* textbuf.cpp in Sources */,
|
2E4747E0736B30569ACD5422 /* textbuf.cpp in Sources */,
|
||||||
6167245C417A32179EC37D2D /* textfile.cpp in Sources */,
|
6167245C417A32179EC37D2D /* textfile.cpp in Sources */,
|
||||||
B20B7313102232A4B3E01ABA /* threadinfo.cpp in Sources */,
|
|
||||||
98AD7D0478BA36249B03C623 /* time.cpp in Sources */,
|
98AD7D0478BA36249B03C623 /* time.cpp in Sources */,
|
||||||
7FC3D17B3C853FE58841002D /* timercmn.cpp in Sources */,
|
7FC3D17B3C853FE58841002D /* timercmn.cpp in Sources */,
|
||||||
729091CC33C73C989B4E0719 /* timerimpl.cpp in Sources */,
|
729091CC33C73C989B4E0719 /* timerimpl.cpp in Sources */,
|
||||||
|
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/private/threadinfo.h
|
|
||||||
// Purpose: declaration of wxThreadSpecificInfo: thread-specific information
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Created: 2009-07-13
|
|
||||||
// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_PRIVATE_THREADINFO_H_
|
|
||||||
#define _WX_PRIVATE_THREADINFO_H_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxLog;
|
|
||||||
|
|
||||||
#if wxUSE_INTL
|
|
||||||
#include "wx/string.h"
|
|
||||||
|
|
||||||
#include <unordered_set>
|
|
||||||
|
|
||||||
using wxLocaleUntranslatedStrings = std::unordered_set<wxString>;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxThreadSpecificInfo: contains all thread-specific information used by wx
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Group all thread-specific information we use (e.g. the active wxLog target)
|
|
||||||
// a in this class to avoid consuming more TLS slots than necessary as there is
|
|
||||||
// only a limited number of them.
|
|
||||||
class wxThreadSpecificInfo
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// Return this thread's instance.
|
|
||||||
static wxThreadSpecificInfo& Get();
|
|
||||||
|
|
||||||
// the thread-specific logger or nullptr if the thread is using the global one
|
|
||||||
// (this is not used for the main thread which always uses the global
|
|
||||||
// logger)
|
|
||||||
wxLog *logger;
|
|
||||||
|
|
||||||
// true if logging is currently disabled for this thread (this is also not
|
|
||||||
// used for the main thread which uses wxLog::ms_doLog)
|
|
||||||
//
|
|
||||||
// NB: we use a counter-intuitive "disabled" flag instead of "enabled" one
|
|
||||||
// because the default, for 0-initialized struct, should be to enable
|
|
||||||
// logging
|
|
||||||
bool loggingDisabled;
|
|
||||||
|
|
||||||
#if wxUSE_INTL
|
|
||||||
// Storage for wxTranslations::GetUntranslatedString()
|
|
||||||
wxLocaleUntranslatedStrings untranslatedStrings;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_THREADS
|
|
||||||
// Cleans up storage for the current thread. Should be called when a thread
|
|
||||||
// is being destroyed. If it's not called, the only bad thing that happens
|
|
||||||
// is that the memory is deallocated later, on process termination.
|
|
||||||
static void ThreadCleanUp();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxThreadSpecificInfo() : logger(nullptr), loggingDisabled(false) {}
|
|
||||||
};
|
|
||||||
|
|
||||||
#define wxThreadInfo wxThreadSpecificInfo::Get()
|
|
||||||
|
|
||||||
#endif // _WX_PRIVATE_THREADINFO_H_
|
|
||||||
|
|
||||||
|
|
@ -223,7 +223,7 @@ OBJECTS3=listctrlcmn.obj,socketiohandler.obj,fdiodispatcher.obj,\
|
||||||
spinbtncmn.obj,scrolbarcmn.obj,colourdata.obj,fontdata.obj,\
|
spinbtncmn.obj,scrolbarcmn.obj,colourdata.obj,fontdata.obj,\
|
||||||
valnum.obj,numformatter.obj,markupparser.obj,\
|
valnum.obj,numformatter.obj,markupparser.obj,\
|
||||||
affinematrix2d.obj,richtooltipcmn.obj,persist.obj,time.obj,\
|
affinematrix2d.obj,richtooltipcmn.obj,persist.obj,time.obj,\
|
||||||
textmeasurecmn.obj,modalhook.obj,threadinfo.obj,\
|
textmeasurecmn.obj,modalhook.obj,\
|
||||||
addremovectrl.obj,notifmsgcmn.obj,graphcmn.obj,dcsvg.obj,\
|
addremovectrl.obj,notifmsgcmn.obj,graphcmn.obj,dcsvg.obj,\
|
||||||
dcgraph.obj,secretstore.obj,uilocale.obj,bmpbndl.obj
|
dcgraph.obj,secretstore.obj,uilocale.obj,bmpbndl.obj
|
||||||
|
|
||||||
|
|
@ -718,7 +718,6 @@ persist.obj : persist.cpp
|
||||||
time.obj : time.cpp
|
time.obj : time.cpp
|
||||||
textmeasurecmn.obj : textmeasurecmn.cpp
|
textmeasurecmn.obj : textmeasurecmn.cpp
|
||||||
modalhook.obj : modalhook.cpp
|
modalhook.obj : modalhook.cpp
|
||||||
threadinfo.obj : threadinfo.cpp
|
|
||||||
addremovectrl.obj : addremovectrl.cpp
|
addremovectrl.obj : addremovectrl.cpp
|
||||||
notifmsgcmn.obj : notifmsgcmn.cpp
|
notifmsgcmn.obj : notifmsgcmn.cpp
|
||||||
graphcmn.obj : graphcmn.cpp
|
graphcmn.obj : graphcmn.cpp
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,6 @@
|
||||||
#include "wx/msgout.h"
|
#include "wx/msgout.h"
|
||||||
#include "wx/textfile.h"
|
#include "wx/textfile.h"
|
||||||
#include "wx/thread.h"
|
#include "wx/thread.h"
|
||||||
#include "wx/private/threadinfo.h"
|
|
||||||
#include "wx/crt.h"
|
#include "wx/crt.h"
|
||||||
#include "wx/vector.h"
|
#include "wx/vector.h"
|
||||||
|
|
||||||
|
|
@ -99,6 +98,10 @@ WX_DEFINE_LOG_CS(TraceMask);
|
||||||
// and this one is used for GetComponentLevels()
|
// and this one is used for GetComponentLevels()
|
||||||
WX_DEFINE_LOG_CS(Levels);
|
WX_DEFINE_LOG_CS(Levels);
|
||||||
|
|
||||||
|
thread_local wxLog* wxPerThreadLogger = nullptr;
|
||||||
|
|
||||||
|
thread_local bool wxPerThreadLoggingDisabled = false;
|
||||||
|
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
#endif // wxUSE_THREADS
|
#endif // wxUSE_THREADS
|
||||||
|
|
@ -388,7 +391,7 @@ wxLog::OnLog(wxLogLevel level,
|
||||||
#if wxUSE_THREADS
|
#if wxUSE_THREADS
|
||||||
if ( !wxThread::IsMain() )
|
if ( !wxThread::IsMain() )
|
||||||
{
|
{
|
||||||
logger = wxThreadInfo.logger;
|
logger = wxPerThreadLogger;
|
||||||
if ( !logger )
|
if ( !logger )
|
||||||
{
|
{
|
||||||
if ( ms_pLogger )
|
if ( ms_pLogger )
|
||||||
|
|
@ -506,7 +509,7 @@ wxLog *wxLog::GetActiveTarget()
|
||||||
if ( !wxThread::IsMain() )
|
if ( !wxThread::IsMain() )
|
||||||
{
|
{
|
||||||
// check if we have a thread-specific log target
|
// check if we have a thread-specific log target
|
||||||
wxLog * const logger = wxThreadInfo.logger;
|
wxLog * const logger = wxPerThreadLogger;
|
||||||
|
|
||||||
// the code below should be only executed for the main thread as
|
// the code below should be only executed for the main thread as
|
||||||
// CreateLogTarget() is not meant for auto-creating log targets for
|
// CreateLogTarget() is not meant for auto-creating log targets for
|
||||||
|
|
@ -563,11 +566,11 @@ wxLog *wxLog::SetThreadActiveTarget(wxLog *logger)
|
||||||
{
|
{
|
||||||
wxASSERT_MSG( !wxThread::IsMain(), "use SetActiveTarget() for main thread" );
|
wxASSERT_MSG( !wxThread::IsMain(), "use SetActiveTarget() for main thread" );
|
||||||
|
|
||||||
wxLog * const oldLogger = wxThreadInfo.logger;
|
wxLog * const oldLogger = wxPerThreadLogger;
|
||||||
if ( oldLogger )
|
if ( oldLogger )
|
||||||
oldLogger->Flush();
|
oldLogger->Flush();
|
||||||
|
|
||||||
wxThreadInfo.logger = logger;
|
wxPerThreadLogger = logger;
|
||||||
|
|
||||||
return oldLogger;
|
return oldLogger;
|
||||||
}
|
}
|
||||||
|
|
@ -779,14 +782,14 @@ void wxLog::FlushThreadMessages()
|
||||||
/* static */
|
/* static */
|
||||||
bool wxLog::IsThreadLoggingEnabled()
|
bool wxLog::IsThreadLoggingEnabled()
|
||||||
{
|
{
|
||||||
return !wxThreadInfo.loggingDisabled;
|
return !wxPerThreadLoggingDisabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */
|
/* static */
|
||||||
bool wxLog::EnableThreadLogging(bool enable)
|
bool wxLog::EnableThreadLogging(bool enable)
|
||||||
{
|
{
|
||||||
const bool wasEnabled = !wxThreadInfo.loggingDisabled;
|
const bool wasEnabled = !wxPerThreadLoggingDisabled;
|
||||||
wxThreadInfo.loggingDisabled = !enable;
|
wxPerThreadLoggingDisabled = !enable;
|
||||||
return wasEnabled;
|
return wasEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,102 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: src/common/threadinfo.cpp
|
|
||||||
// Purpose: declaration of wxThreadSpecificInfo: thread-specific information
|
|
||||||
// Author: Vaclav Slavik
|
|
||||||
// Created: 2013-09-14
|
|
||||||
// Copyright: (c) 2013 Vaclav Slavik <vslavik@fastmail.fm>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
// For compilers that support precompilation, includes "wx.h".
|
|
||||||
#include "wx/wxprec.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include "wx/private/threadinfo.h"
|
|
||||||
|
|
||||||
#if wxUSE_THREADS
|
|
||||||
|
|
||||||
#include "wx/tls.h"
|
|
||||||
#include "wx/thread.h"
|
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
|
|
||||||
// All thread info objects are stored in a global list so that they are
|
|
||||||
// freed when global objects are destroyed and no memory leaks are reported.
|
|
||||||
|
|
||||||
// Notice that we must be using accessor functions instead of simple global
|
|
||||||
// variables here as this code could be executed during global initialization
|
|
||||||
// time, i.e. before any globals in this module were initialzied.
|
|
||||||
inline wxCriticalSection& GetAllThreadInfosCS()
|
|
||||||
{
|
|
||||||
static wxCriticalSection s_csAllThreadInfos;
|
|
||||||
|
|
||||||
return s_csAllThreadInfos;
|
|
||||||
}
|
|
||||||
|
|
||||||
using wxAllThreadInfos = std::vector<std::unique_ptr<wxThreadSpecificInfo>>;
|
|
||||||
|
|
||||||
inline wxAllThreadInfos& GetAllThreadInfos()
|
|
||||||
{
|
|
||||||
static wxAllThreadInfos s_allThreadInfos;
|
|
||||||
|
|
||||||
return s_allThreadInfos;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pointer to the current thread's instance
|
|
||||||
inline wxThreadSpecificInfo*& GetThisThreadInfo()
|
|
||||||
{
|
|
||||||
static wxTHREAD_SPECIFIC_DECL wxThreadSpecificInfo* s_thisThreadInfo;
|
|
||||||
|
|
||||||
return s_thisThreadInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define wxTHIS_THREAD_INFO GetThisThreadInfo()
|
|
||||||
|
|
||||||
} // anonymous namespace
|
|
||||||
|
|
||||||
|
|
||||||
wxThreadSpecificInfo& wxThreadSpecificInfo::Get()
|
|
||||||
{
|
|
||||||
if ( !wxTHIS_THREAD_INFO )
|
|
||||||
{
|
|
||||||
wxTHIS_THREAD_INFO = new wxThreadSpecificInfo;
|
|
||||||
wxCriticalSectionLocker lock(GetAllThreadInfosCS());
|
|
||||||
GetAllThreadInfos().push_back(
|
|
||||||
std::unique_ptr<wxThreadSpecificInfo>(wxTHIS_THREAD_INFO));
|
|
||||||
}
|
|
||||||
return *wxTHIS_THREAD_INFO;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxThreadSpecificInfo::ThreadCleanUp()
|
|
||||||
{
|
|
||||||
if ( !wxTHIS_THREAD_INFO )
|
|
||||||
return; // nothing to do, not used by this thread at all
|
|
||||||
|
|
||||||
// find this thread's instance in GetAllThreadInfos() and destroy it
|
|
||||||
wxCriticalSectionLocker lock(GetAllThreadInfosCS());
|
|
||||||
for ( wxAllThreadInfos::iterator i = GetAllThreadInfos().begin();
|
|
||||||
i != GetAllThreadInfos().end();
|
|
||||||
++i )
|
|
||||||
{
|
|
||||||
if ( i->get() == wxTHIS_THREAD_INFO )
|
|
||||||
{
|
|
||||||
GetAllThreadInfos().erase(i);
|
|
||||||
wxTHIS_THREAD_INFO = nullptr;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#else // !wxUSE_THREADS
|
|
||||||
|
|
||||||
wxThreadSpecificInfo& wxThreadSpecificInfo::Get()
|
|
||||||
{
|
|
||||||
static wxThreadSpecificInfo s_instance;
|
|
||||||
return s_instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxUSE_THREADS/wxUSE_THREADS
|
|
||||||
|
|
@ -44,7 +44,6 @@
|
||||||
#include "wx/fontmap.h"
|
#include "wx/fontmap.h"
|
||||||
#include "wx/stdpaths.h"
|
#include "wx/stdpaths.h"
|
||||||
#include "wx/version.h"
|
#include "wx/version.h"
|
||||||
#include "wx/private/threadinfo.h"
|
|
||||||
#include "wx/uilocale.h"
|
#include "wx/uilocale.h"
|
||||||
|
|
||||||
#ifdef __WINDOWS__
|
#ifdef __WINDOWS__
|
||||||
|
|
@ -55,6 +54,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <unordered_set>
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// simple types
|
// simple types
|
||||||
|
|
@ -1450,13 +1450,8 @@ wxString wxTranslations::GetBestTranslation(const wxString& domain,
|
||||||
/* static */
|
/* static */
|
||||||
const wxString& wxTranslations::GetUntranslatedString(const wxString& str)
|
const wxString& wxTranslations::GetUntranslatedString(const wxString& str)
|
||||||
{
|
{
|
||||||
wxLocaleUntranslatedStrings& strings = wxThreadInfo.untranslatedStrings;
|
thread_local std::unordered_set<wxString> wxPerThreadStrings;
|
||||||
|
return *wxPerThreadStrings.insert(str).first;
|
||||||
wxLocaleUntranslatedStrings::iterator i = strings.find(str);
|
|
||||||
if ( i == strings.end() )
|
|
||||||
return *strings.insert(str).first;
|
|
||||||
|
|
||||||
return *i;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,6 @@
|
||||||
#include "wx/apptrait.h"
|
#include "wx/apptrait.h"
|
||||||
#include "wx/scopeguard.h"
|
#include "wx/scopeguard.h"
|
||||||
|
|
||||||
#include "wx/private/threadinfo.h"
|
|
||||||
|
|
||||||
#include "wx/msw/private.h"
|
#include "wx/msw/private.h"
|
||||||
#include "wx/msw/missing.h"
|
#include "wx/msw/missing.h"
|
||||||
#include "wx/msw/seh.h"
|
#include "wx/msw/seh.h"
|
||||||
|
|
@ -580,10 +578,6 @@ THREAD_RETVAL THREAD_CALLCONV wxThreadInternal::WinThreadStart(void *param)
|
||||||
if ( isDetached )
|
if ( isDetached )
|
||||||
thread->m_internal->LetDie();
|
thread->m_internal->LetDie();
|
||||||
|
|
||||||
// Do this as the very last thing to ensure that thread-specific info is
|
|
||||||
// not recreated any longer.
|
|
||||||
wxThreadSpecificInfo::ThreadCleanUp();
|
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,6 @@
|
||||||
#include "wx/thread.h"
|
#include "wx/thread.h"
|
||||||
#include "wx/except.h"
|
#include "wx/except.h"
|
||||||
|
|
||||||
#include "wx/private/threadinfo.h"
|
|
||||||
|
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/app.h"
|
#include "wx/app.h"
|
||||||
#include "wx/dynarray.h"
|
#include "wx/dynarray.h"
|
||||||
|
|
@ -1739,11 +1737,6 @@ void wxThread::Exit(ExitCode status)
|
||||||
}
|
}
|
||||||
wxCATCH_ALL( wxTheApp->OnUnhandledException(); )
|
wxCATCH_ALL( wxTheApp->OnUnhandledException(); )
|
||||||
|
|
||||||
// Clean up thread-specific data before exiting the thread (we do it as
|
|
||||||
// late as possible as wxLog calls can recreate it and may happen until the
|
|
||||||
// very end).
|
|
||||||
wxThreadSpecificInfo::ThreadCleanUp();
|
|
||||||
|
|
||||||
// delete C++ thread object if this is a detached thread - user is
|
// delete C++ thread object if this is a detached thread - user is
|
||||||
// responsible for doing this for joinable ones
|
// responsible for doing this for joinable ones
|
||||||
if ( m_isDetached )
|
if ( m_isDetached )
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue