Age | Commit message (Collapse) | Author |
|
These issues were identified by the STACK tool.
By default, the C++ new operator will throw an exception on allocation
failure, rather than returning a null pointer.
The result is that testing the returned pointer for null is redundant
and _may_ be removed by the compiler. This is thus optimization
unstable and may result in incorrect behaviour at runtime.
However, we do not use exceptions as they are not supported by all
compilers and may be disabled.
To make this stable without removing the null check, you could qualify
the new operator call with std::nothrow to indicate that this should
return a null, rather than throwing an exception.
However, using (std::nothrow) was not desirable due to the Symbian
toolchain lacking a <new> header.
A global solution to this was also not easy by redefining "new" as "new
(std::nothrow)" due to custom constructors in NDS toolchain and various
common classes.
Also, this would then need explicit checks for OOM adding to all new
usages as per C malloc which is untidy.
For now to remove this optimisation unstable code is best as it is
likely to not be present anyway, and OOM will cause a system library
exception instead, even without exceptions enabled in the application
code.
|
|
This reverts commit b585addc23de25c019f250986d50c0373219571d.
The allocation of MemoryPool's page memory is doing in MemoryPool::allocPage,
which uses ::malloc, thus we need to use ::free to free the page memory in
MemoryPool::freeUnusedPages.
|
|
Memory is allocated with new in Hashmap::allocNode() and incorrectly
freed with free() in ~MemoryPool() and freeUnusedPages().
Issue reported by Dr. Memory
|
|
|
|
These are sorted according to the alphabetical order of the description. Thus,
Croatian should be between Chinese (Taiwan) and Czech.
|
|
|
|
|
|
|
|
The value_type is analogous to std::basic_string::value_type.
The unsigned_type on the other hand is an unsigned type of the value_type which
allows to obtain an character without nasty sign extension.
|
|
This fixes compilation of sword25's pluto with Visual Studio. The issue
has been revealed with commit 34169a81. The other data types are
defined in scummsys.h, thus only the missing int64 and uint64 defines
are set.
|
|
|
|
This was taken directly from the old code, which either used different
semantics, or had a genuine bug
|
|
This is needed by the "Mirage" Wintermute game.
Vorbis can do backward seeking, thus we need to enable this for ZIP
streams. Since this can be a potentially slow operation, we throw a
warning (once per stream) when it occurs. Originally, SEEK_END seeks
in GZipReadStream were disabled by commit 9138128f. Refer to patch
#2050337 for more information.
|
|
|
|
|
|
This fixes a couple of these variables by removing them as they
are unused or set-but-unused variables.
|
|
Apparently their tools do not include __has_feature clang extension.
I've submitted the bugreport to them but in the meantime let's have this
define in the system.
|
|
The Russian translated versions of Neverhood have invalid unpacked
sizes for some compressed resources. This helps in identifying their
resource parameters more easily
|
|
|
|
This should fix couple of hundreds of Coverity detected defects.
|
|
|
|
This fixes compilation in the keymapper.
|
|
Config Manager Cleanup
|
|
This can be abused to insert Domains into the game domains without any checks.
Instead, only write iterator access is given.
|
|
|
|
These very old comments claimed that ConfigManager uses INIFile. This is not
true however. Thus removing them should clear things up a little bit.
|
|
This clears up that 'ConfigFile' is actually a class handling only INI-files.
|
|
Instead we provide wrapper functionality now. Intuitively a Domain is not a
simple StringMap.
|
|
This should fix compilation on mingw64 with --enable-c++11 and also make sure
the constants are present on other systems for the uncommon case they might be
missing.
|
|
|
|
This should have no effect on common/math.h as scummsys is included at
the top anyway, but this will fix compilation on some toolchains when
strict ANSI language compliance is enabled i.e. -std=c++11, rather than
-std=gnu11.
This causes an issue as a side effect is to set a guard which disables
various non-standard defines in the system headers i.e. the M_PI and
M_SQRT1_2 constant definitions in the MinGW x86_64 toolchain on
buildbot.
By moving this into scummsys.h after the point of system math.h
inclusion, we can ensure that M_PI etc. are always present.
|
|
|
|
|
|
|
|
ALL: Don't use EventRecorder at all when not compiled in
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit 93987d999c61221bda3da548c8c81f5d6d906a12.
|
|
DefaultEventManager registers a keymapper that is supposed to be
auto-freed. However, the event recorder then sets itself as a new
keymapper, but because the autofree flag is already set,
registerMapper() ends up deleting the event recorder itself. Setting
the autofree flag before actually freeing the mapper fixes the issue
and prevents ScummVM from crashing on startup
|
|
This fixes a branching on uninitialized variable reported by valgrind on
startup.
|
|
GSoC2012: Event Recorder (reworked)
|
|
COMMON: Add erase method to String class
|
|
|
|
|
|
|
|
This commit changes the comment to use the same variable names as we do in the
code. Furthermore, it also makes the comment a bit easier to grasp.
|