Android.mk
author Sam Lantinga <slouken@libsdl.org>
Thu, 17 Apr 2014 20:02:11 -0700
changeset 8706 0c9660fdf9bf
parent 8097 d4e916b1c135
child 8864 81198d739376
permissions -rwxr-xr-x
Fixed bug 2502 - Memory leak inside SDL_x11events.c -> X11_DispatchEvent(_THIS)

bojko_1000

Code @566:
if (data->xwindow) {
Atom _net_frame_extents = X11_XInternAtom(display, "_NET_FRAME_EXTENTS", 0);
Atom type = None;
int format;
unsigned long nitems = 0, bytes_after;
unsigned char *property;
X11_XGetWindowProperty(display, data->xwindow,
_net_frame_extents, 0, 16, 0,
XA_CARDINAL, &type, &format,
&nitems, &bytes_after, &property);

if (type != None && nitems == 4)
{
border_left = ((long*)property)[0];
border_right = ((long*)property)[1];
border_top = ((long*)property)[2];
border_bottom = ((long*)property)[3];
}
}

Code after _the fix_:
if (data->xwindow) {
Atom _net_frame_extents = X11_XInternAtom(display, "_NET_FRAME_EXTENTS", 0);
Atom type = None;
int format;
unsigned long nitems = 0, bytes_after;
unsigned char *property;
X11_XGetWindowProperty(display, data->xwindow,
_net_frame_extents, 0, 16, 0,
XA_CARDINAL, &type, &format,
&nitems, &bytes_after, &property);

if (type != None && nitems == 4)
{
border_left = ((long*)property)[0];
border_right = ((long*)property)[1];
border_top = ((long*)property)[2];
border_bottom = ((long*)property)[3];
}
X11_XFree(property);
}

I have found that leak with valgrind.
     1 LOCAL_PATH := $(call my-dir)
     2 
     3 ###########################
     4 #
     5 # SDL shared library
     6 #
     7 ###########################
     8 
     9 include $(CLEAR_VARS)
    10 
    11 LOCAL_MODULE := SDL2
    12 
    13 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
    14 
    15 LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
    16 
    17 LOCAL_SRC_FILES := \
    18 	$(subst $(LOCAL_PATH)/,, \
    19 	$(wildcard $(LOCAL_PATH)/src/*.c) \
    20 	$(wildcard $(LOCAL_PATH)/src/audio/*.c) \
    21 	$(wildcard $(LOCAL_PATH)/src/audio/android/*.c) \
    22 	$(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \
    23 	$(LOCAL_PATH)/src/atomic/SDL_atomic.c \
    24 	$(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \
    25 	$(wildcard $(LOCAL_PATH)/src/core/android/*.c) \
    26 	$(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \
    27 	$(wildcard $(LOCAL_PATH)/src/dynapi/*.c) \
    28 	$(wildcard $(LOCAL_PATH)/src/events/*.c) \
    29 	$(wildcard $(LOCAL_PATH)/src/file/*.c) \
    30 	$(wildcard $(LOCAL_PATH)/src/haptic/*.c) \
    31 	$(wildcard $(LOCAL_PATH)/src/haptic/dummy/*.c) \
    32 	$(wildcard $(LOCAL_PATH)/src/joystick/*.c) \
    33 	$(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \
    34 	$(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \
    35 	$(wildcard $(LOCAL_PATH)/src/power/*.c) \
    36 	$(wildcard $(LOCAL_PATH)/src/power/android/*.c) \
    37 	$(wildcard $(LOCAL_PATH)/src/filesystem/dummy/*.c) \
    38 	$(wildcard $(LOCAL_PATH)/src/render/*.c) \
    39 	$(wildcard $(LOCAL_PATH)/src/render/*/*.c) \
    40 	$(wildcard $(LOCAL_PATH)/src/stdlib/*.c) \
    41 	$(wildcard $(LOCAL_PATH)/src/thread/*.c) \
    42 	$(wildcard $(LOCAL_PATH)/src/thread/pthread/*.c) \
    43 	$(wildcard $(LOCAL_PATH)/src/timer/*.c) \
    44 	$(wildcard $(LOCAL_PATH)/src/timer/unix/*.c) \
    45 	$(wildcard $(LOCAL_PATH)/src/video/*.c) \
    46 	$(wildcard $(LOCAL_PATH)/src/video/android/*.c) \
    47     $(wildcard $(LOCAL_PATH)/src/test/*.c))
    48 
    49 LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES
    50 LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid
    51 
    52 include $(BUILD_SHARED_LIBRARY)
    53 
    54 ###########################
    55 #
    56 # SDL static library
    57 #
    58 ###########################
    59 
    60 LOCAL_MODULE := SDL2_static
    61 
    62 LOCAL_MODULE_FILENAME := libSDL2
    63 
    64 LOCAL_SRC_FILES += $(LOCAL_PATH)/src/main/android/SDL_android_main.c
    65 
    66 LOCAL_LDLIBS := 
    67 LOCAL_EXPORT_LDLIBS := -Wl,--undefined=Java_org_libsdl_app_SDLActivity_nativeInit -ldl -lGLESv1_CM -lGLESv2 -llog -landroid
    68 
    69 include $(BUILD_STATIC_LIBRARY)