Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ALL: Fix optimization unstable code on checking for null after new.
|
|
|
|
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.
|
|
|
|
|
|
Each engine now only has to provide a single configure.engine file
adding the engine into the configure script, which then produces the
required other files automatically.
|
|
This is now generated automatically by the configure script from the
engine directory names.
|
|
This is the third and final commit enabling fully pluggable engines.
Now providing an engine folder contains a configure.engine, engine.mk
and engine-plugin.h file, it will be picked up automatically by the
configure script.
|
|
This is the second part of allowing engines to be added dynamically.
Each folder in engines/ which must contain a file named "engine.mk"
containing the make definitions for that engine.
|
|
This is the first part of allowing engines to be added dynamically.
They are placed into a folder in engines/ which must contain a file
named "configure.engine" to add the engine, which is pulled into the
top level configure script automatically.
|
|
|
|
I think this fixes CID 1086888, but I haven't been able to find
where in the game this constructor is used.
|
|
This is part of bug #3615056 and is due to NULL being defined as
nullptr when C++-11 is enabled, which is not valid being assigned
to a integer value.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The method it is meant to override uses "const byte *buf" so this
one should too. I don't know if/when it's called, but fuzzie tells
me it should be a harmless change. Hopefully fixes CID 1003892.
|
|
|
|
Thanks Tomaso for reporting the problem
|
|
It didn't always reach va_end(), but rather than adding a call it
makes more sense to just drop the varargs from it, since it didn't
use it anyway.
|
|
Though shouldn't it also alert the user to the failure?
|
|
Unfortunately, I'm not sure where and when this function is called.
But this should be correct. CID 1003575
|
|
Looking at this code and the code in clip2D, this shouldn't happen,
but this will prevent any future issues.
|
|
This fixes bug #3586252 ("TONY: Game errors out when exiting via the
menu").
|
|
Thanks to wjp and fuzzie for working out the cause.
|
|
Thanks to digitall for debugging and testing.
|
|
|
|
This is mainly removal of extraneous blank lines, reformatting indents
to tab characters and other minor non-functional changes to improve
compliance with Code Formatting Conventions.
|
|
The mouse position is now represented internally by Common::Point and
the keyDown buffer is an array of Common::Keycode values for depressed
keys.
|
|
|
|
|
|
|
|
TONY: fix volumes of sound effects.
|
|
|
|
The game was using a logarithmic scale (through DirectSound)
so we need a log->linear conversion to feed the mixer.
|