Skip to content

Commit 0703c1b

Browse files
RaydanOMGrartdeell
authored andcommitted
When linkedlist_append fails, the global ref is now destroyed
1 parent 58d1e4d commit 0703c1b

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

app_pojavlauncher/src/main/jni/input_bridge_v3.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,12 @@ LinkedListNode* pojavCreateCursor(GLFWimage* image, int xhot, int yhot) {
616616
(*env)->DeleteLocalRef(env, cursor);
617617
(*env)->DeleteLocalRef(env, buffer);
618618

619-
return linkedlist_append(pojav_environ->cursors, globalCursor);
619+
LinkedListNode* node = linkedlist_append(pojav_environ->cursors, globalCursor);
620+
if(!node) {
621+
(*env)->DeleteGlobalRef(env, globalCursor);
622+
return NULL;
623+
}
624+
return node;
620625
}
621626

622627
void pojavSetCursor(__attribute__((unused)) void* window, LinkedListNode* cursor) {

app_pojavlauncher/src/main/jni/linkedlist.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ LinkedList* linkedlist_init() {
1414

1515
LinkedListNode *linkedlist_append(LinkedList* list, void* value) {
1616
LinkedListNode* node = malloc(sizeof(LinkedListNode));
17+
if(!node) return NULL;
1718
node->value = value;
1819
node->next = NULL;
1920
node->prev = list->last;

0 commit comments

Comments
 (0)