mirror of https://github.com/libsdl-org/SDL.git
utils: disable object validity check in release builds
This commit is contained in:
parent
71f479b4aa
commit
2009b8243e
|
|
@ -410,6 +410,15 @@ set(SDL_TESTS_TIMEOUT_MULTIPLIER "1" CACHE STRING "Timeout multiplier to account
|
|||
set_option(SDL_EXAMPLES "Build the examples directory")
|
||||
dep_option(SDL_EXAMPLES_LINK_SHARED "link examples to shared SDL library" "${SDL_SHARED}" "SDL_SHARED;SDL_STATIC" "${SDL_SHARED}")
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(SDL_OBJECT_VALIDITY_CHECK_DEFAULT ON)
|
||||
else()
|
||||
set(SDL_OBJECT_VALIDITY_CHECK_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
set_option(SDL_OBJECT_VALIDITY_CHECK "Enable object validity check" ${SDL_OBJECT_VALIDITY_CHECK_DEFAULT})
|
||||
set(HAVE_OBJECT_VALIDITY_CHECK ${SDL_OBJECT_VALIDITY_CHECK})
|
||||
|
||||
if(VITA)
|
||||
set_option(VIDEO_VITA_PIB "Build with PSVita piglet gles2 support" OFF)
|
||||
set_option(VIDEO_VITA_PVR "Build with PSVita PVR gles/gles2 support" OFF)
|
||||
|
|
|
|||
|
|
@ -550,6 +550,9 @@
|
|||
#cmakedefine SDL_DISABLE_WINDOWS_IME 1
|
||||
#cmakedefine SDL_GDK_TEXTINPUT 1
|
||||
|
||||
/* Enable object validity check */
|
||||
#cmakedefine SDL_OBJECT_VALIDITY_CHECK
|
||||
|
||||
/* Platform specific definitions */
|
||||
#cmakedefine SDL_IPHONE_KEYBOARD 1
|
||||
#cmakedefine SDL_IPHONE_LAUNCHSCREEN 1
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@ static bool SDL_KeyMatchObject(void *unused, const void *a, const void *b)
|
|||
|
||||
void SDL_SetObjectValid(void *object, SDL_ObjectType type, bool valid)
|
||||
{
|
||||
#ifdef SDL_OBJECT_VALIDITY_CHECK
|
||||
SDL_assert(object != NULL);
|
||||
|
||||
if (SDL_ShouldInit(&SDL_objects_init)) {
|
||||
|
|
@ -166,6 +167,7 @@ void SDL_SetObjectValid(void *object, SDL_ObjectType type, bool valid)
|
|||
} else {
|
||||
SDL_RemoveFromHashTable(SDL_objects, object);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool SDL_ObjectValid(void *object, SDL_ObjectType type)
|
||||
|
|
@ -174,12 +176,15 @@ bool SDL_ObjectValid(void *object, SDL_ObjectType type)
|
|||
return false;
|
||||
}
|
||||
|
||||
#ifdef SDL_OBJECT_VALIDITY_CHECK
|
||||
const void *object_type;
|
||||
if (!SDL_FindInHashTable(SDL_objects, object, &object_type)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (((SDL_ObjectType)(uintptr_t)object_type) == type);
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
typedef struct GetOneObjectData
|
||||
|
|
|
|||
Loading…
Reference in New Issue