Browse Source

Added SDL_SetFreeableProperty() for internal use

Sam Lantinga 1 year ago
parent
commit
bba2a5d360
2 changed files with 11 additions and 0 deletions
  1. 10 0
      src/SDL_properties.c
  2. 1 0
      src/SDL_properties_c.h

+ 10 - 0
src/SDL_properties.c

@@ -375,6 +375,16 @@ int SDL_SetProperty(SDL_PropertiesID props, const char *name, void *value)
     return SDL_PrivateSetProperty(props, name, property);
 }
 
+static void CleanupFreeableProperty(void *userdata, void *value)
+{
+    SDL_free(value);
+}
+
+int SDL_SetFreeableProperty(SDL_PropertiesID props, const char *name, void *value)
+{
+    return SDL_SetPropertyWithCleanup(props, name, value, CleanupFreeableProperty, NULL);
+}
+
 static void CleanupSurface(void *userdata, void *value)
 {
     SDL_Surface *surface = (SDL_Surface *)value;

+ 1 - 0
src/SDL_properties_c.h

@@ -20,5 +20,6 @@
 */
 
 extern int SDL_InitProperties(void);
+extern int SDL_SetFreeableProperty(SDL_PropertiesID props, const char *name, void *value);
 extern int SDL_SetSurfaceProperty(SDL_PropertiesID props, const char *name, SDL_Surface *surface);
 extern void SDL_QuitProperties(void);