mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-18 15:48:48 +00:00
ac4087856f
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. |
||
---|---|---|
.. | ||
engine | ||
graphics | ||
parser | ||
sound | ||
video | ||
configure.engine | ||
console.cpp | ||
console.h | ||
debug.h | ||
decompressor.cpp | ||
decompressor.h | ||
detection_tables.h | ||
detection.cpp | ||
event.cpp | ||
event.h | ||
module.mk | ||
POTFILES | ||
resource_audio.cpp | ||
resource_intern.h | ||
resource.cpp | ||
resource.h | ||
sci.cpp | ||
sci.h | ||
util.cpp | ||
util.h |