Fix segfault when deleting tree-sitter query (bug#72238)
authorYuan Fu <casouri@gmail.com>
Sun, 21 Jul 2024 23:50:59 +0000 (16:50 -0700)
committerYuan Fu <casouri@gmail.com>
Mon, 22 Jul 2024 00:14:08 +0000 (17:14 -0700)
* src/treesit.c (treesit_delete_query): Only delete query and cursor
when they are non-NULL.

src/treesit.c

index 3ae55d77a91d84d0f145db6da7b9c6ca61079b91..416c1edf791c0cd4f5e02456565c14241b756fd0 100644 (file)
@@ -1224,8 +1224,10 @@ treesit_delete_parser (struct Lisp_TS_Parser *lisp_parser)
 void
 treesit_delete_query (struct Lisp_TS_Query *lisp_query)
 {
-  ts_query_delete (lisp_query->query);
-  ts_query_cursor_delete (lisp_query->cursor);
+  if (lisp_query->query)
+    ts_query_delete (lisp_query->query);
+  if (lisp_query->cursor)
+    ts_query_cursor_delete (lisp_query->cursor);
 }
 
 /* The following function is called from print.c:print_vectorlike.  */