Commit Graph

93 Commits

Author SHA1 Message Date
Vadim Zeitlin
ce3d416247 Make wx/buffer.h header self-contained
Including this header as the first wxWidgets header in a translation
unit resulted in compilation errors due to including the internal
wx/wxcrtbase.h header before including wx/defs.h, which must be included
before it (at least to define DLL import/export macros and sized char
types used in wx/wxcrtbase.h).

Fix this by simply including wx/defs.h from wx/buffer.h.
2017-10-28 15:07:35 +02:00
Vadim Zeitlin
6b84e6e1b9 Slightly improve out of memory handling in wxMemoryBuffer.
Reset not only m_data but also m_size and m_len to 0 if we run out of memory.

Closes #4500.
2015-03-13 16:58:37 +01:00
Vadim Zeitlin
f4b80e5337 Remove MSVC6 support.
Don't support this compiler any more, this allows to get rid of tons of
MSVC6-specific workarounds, in particular we can now use Bind() and natural
template functions calls in the library code.

Also remove MSVC6 project and solution files and don't generate them when
bakefile_gen is ran any more (removing the remaining occurrences of msvc6prj
from the bakefiles results in weird bake-time errors, so it's simpler to just
leave them there).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-15 22:32:17 +00:00
Vadim Zeitlin
9b31387508 Merge the changes from 3.0 branch.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-11-12 18:06:37 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
daa3509726 No changes, just silence some MSVC 11 static analyzer warnings.
This is an aborted attempt to make wxWidgets code compile without warnings
when using MSVC 11 /analyze option, as it was supposed to have become much
better. Unfortunately it still produces way too many false positives to be
really useful, in particular NULL pointer detection is completely broken as
even the code such as (from object.cpp):

        wxClassInfo *info = sm_first;
        while (info)
        {
            if ( info->m_next == this )
                ...
        }

provokes tons of warnings about "info" being NULL inside the loop which is
clearly impossible.

So this commit just fixes a few obvious warnings, mostly about variable
shadowing but also a couple about possibly passing NULL to memcpy().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-15 23:20:23 +00:00
Vadim Zeitlin
1582a1db62 No changes, just fix some typos in comments.
Closes #14494.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72163 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-20 11:55:18 +00:00
Vadim Zeitlin
f2c6e60762 Ensure wxCharTypeBuffer data is NUL-terminated after extend() call.
As wxCharTypeBuffer ctor taking the length NUL-terminates the buffer, it may
be expected that extend() does the same but it did not. Do add the NUL at the
end for consistency, even though it's not really needed for the existing code
using extend() in wxWidgets itself.

Closes #13885.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-20 22:11:51 +00:00
Vadim Zeitlin
846b6c8658 Added wxMemoryBuffer::Clear() and IsEmpty() methods.
Add two convenient methods which may be used instead of testing or setting the
buffer length.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-20 12:22:22 +00:00
Vadim Zeitlin
bd362275b8 Remove Palm OS port.
The platform targeted by this port doesn't exist any more and the port never
achieved really working state so remove the code to avoid having to maintain
it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-15 01:05:28 +00:00
Stefan Csomor
df04f800b8 supporting clang 2.0 under xcode, see #12332
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-27 11:00:26 +00:00
Václav Slavík
338084945b Fix wxScopedCharTypeBuffer<T>::CreateOwned() to match docs.
The documentation says that it takes ownership of the memory block
passed to it, but the implementation made a copy.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-05 07:45:33 +00:00
Václav Slavík
8dffb6b1a7 Add wxMemoryBuffer::release().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-26 20:51:07 +00:00
Václav Slavík
8d94819c43 Remove wxUSE_WCHAR_T checks.
wxWidgets requires wchar_t for some time now; wx/chartype.h has a check
to fail complation without it. Simplify code by removing now-dead code
for the !wxUSE_WCHAR_T case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-16 10:43:18 +00:00
Vadim Zeitlin
b96a56e60e Make it possible to use wxCharBuffer during program initialization.
wxCharBuffer might be used during static initialization, even if only
implicitly. E.g. it is used by wxString::Format() which can be used to
initialize a global string. But it uses the global s_untypedNullData variable
might not be initialized yet resulting in mysterious failures.

Fix this in the usual way by wrapping access to the variable via a function.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-28 11:09:26 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Václav Slavík
fb5ae4f6d9 (blind) fix for VC6s' warning about non-dll base template class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-14 07:02:59 +00:00
Václav Slavík
197380a09f always return (owned or non-owned, depending on build) wxScopedCharBuffer from utf8_str() and ToUTF8()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-30 18:28:42 +00:00
Václav Slavík
a6bb7a282d fixed size of buffer returned by wxFormatConverter (it was too large before)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-30 11:54:41 +00:00
Václav Slavík
6df09f32fd added length to wx(Scoped)CharBuffer to improve handling of embedded NULs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-29 20:58:39 +00:00
Václav Slavík
3339414ae8 don't duplicate copy ctor and assignment operator code in wxCharTypeBuffer<T>, it was identical to base class' version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-28 09:35:53 +00:00
Václav Slavík
de4983f323 split wxCharTypeBuffer<T> into wxScopedCharTypeBuffer<T> and wxCharTypeBuffer<T> -- the former is for transient data with validity limited to parent's lifetime, the latter is for permanent storage of string data (bug #9638)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59887 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-27 15:33:55 +00:00
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Chris Elliott
5953e7c7d6 fix for Borland compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-17 09:26:58 +00:00
Vadim Zeitlin
5c69ef61f3 fix some of icc 11.0 warnings and disable a few others
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-16 14:24:13 +00:00
Vadim Zeitlin
5c33522fca replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Vadim Zeitlin
4e79262f78 resolve the DLL linking problems with MSVC due to use of static variables of template types by replacing them by a non-template unique untypedNullDataPtr
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 01:48:36 +00:00
Vadim Zeitlin
6b583d40a8 fix linking problems due to MSVC implicitly considering template classes specializations used as base classes DLL-exported even though it doesn't actually export them when building the DLL (with or without explicit declspec(dllexport)); also replace wxCharTypeBuffer::NullData with a static function to allow not DLL-exporting this class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-30 23:04:29 +00:00
Václav Slavík
fda71b397a re-fix MinGW DLL compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55133 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-20 21:35:55 +00:00
Vadim Zeitlin
aa74cc2120 don't use WXDLLIMPEXP_BASE_DATA() around member data, this results in an error in MSVC DLL build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-18 19:52:00 +00:00
Václav Slavík
03af437f75 made wxCharTypeBuffer<T>::release() const again, for compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55067 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-12 15:10:57 +00:00
Václav Slavík
7113846bc8 DLLs linking fix wxCharTypeBuffer<T>::NullData
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55052 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-10 20:41:10 +00:00
Václav Slavík
5c1de526d2 added refcounting to wxCharBuffer to fix passing of wxCharBuffer to printf-like functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55048 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-10 19:37:51 +00:00
Vadim Zeitlin
9b4da62701 PalmOS compilation fixes (wx-trunk-out.diff part of patch 1894861)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-02 00:43:06 +00:00
Paul Cornett
162e998c2f check for self-assignment in operator=
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-09 04:08:33 +00:00
Vadim Zeitlin
53c75dc2f2 test for wxUSE_UNICODE_UTF8 in wxUTF8Buf definition was reversed, correct it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-01 15:14:39 +00:00
Vadim Zeitlin
30386aeb86 define wxUTF8Buf as the type returned by wxString::utf8_str()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-20 22:52:36 +00:00
Vadim Zeitlin
7c77f33480 added WXDLLIMPEXP_TEMPLATE_INSTANCE_BASE() macro and use it to work around VC6 warnings about non DLL-exported templates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48691 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-14 21:02:09 +00:00
Vadim Zeitlin
4ec4d8610a added WXDLLIMPEXP_BASE for a couple of template classes having only inline functions as VC7 still needs them in DLL build if these classes are used as base classes or members of other DLL-exported classes (replaces first two parts of the patch 1779004)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-14 17:04:27 +00:00
Václav Slavík
b5dbe15d0b added WXDLLIMPEXP_FWD_FOO macros in addition to WXDLLIMPEXP_FOO for use with forward declarations (in preparation for GCC visibility support)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-09 10:09:52 +00:00
Václav Slavík
541aa82180 fixed VC6 warnings about non-dllexported members in dllexported classes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-11 19:59:11 +00:00
Václav Slavík
52de37c78f 1. made CRT wrappers definitions indepenent of wxUSE_UNICODE: both ANSI and Unicode variants are now defined
2. split wxcrt.h into wxcrtbase.h with lowlevel compiler-specific definitions and wxcrt.h with ANSI- and Unicode-compatible wx wrappers


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-10 17:14:14 +00:00
Václav Slavík
8db4a5d27a added missing forward declaration for wxCStrData
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-19 11:25:34 +00:00
Václav Slavík
e713a90b3f moved vararg CRT functions wrappers to a new wxcrtvararg.h header
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-19 07:44:16 +00:00
Václav Slavík
681e441286 added wxCStrData::As[W]CharBuf() that doesn't keep converted string in memory for longer than needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-16 06:59:04 +00:00
Václav Slavík
486a594182 added ability to create 'non-owned' buffers that aren't freed by wxCharBuffer dtor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-14 16:58:48 +00:00
Václav Slavík
817270659e initial version of UTF-8 strings representation (still converting to wchar_t* a lot); it has to be explicitly enabled with --enable-utf8 for now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-12 21:15:07 +00:00
Václav Slavík
11aac4baa6 provide both const char* and const wchar_t* implicit conversion of wxCStrData regardless of the build type
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-05 21:28:14 +00:00
Václav Slavík
665e6a8753 added missing public keyword to wxWritableCharTypeBuffer declaration
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45177 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-30 20:30:34 +00:00
Václav Slavík
ef0f138756 added char_str() and wchar_str() methods to wxString for obtaining char*/wchar_t* pointers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-30 20:09:02 +00:00