@@ -70,6 +70,7 @@ cdef class LexborCSSSelector:
7070 self .results = []
7171 self .current_node = None
7272 lxb_css_selector_list_destroy_memory(selectors_list)
73+ self .parser.memory = NULL
7374 return results
7475
7576 cpdef int any_matches(self , str query, LexborNode node) except - 1 :
@@ -82,7 +83,7 @@ cdef class LexborCSSSelector:
8283 raise TypeError (" Query must be a string." )
8384
8485 bytes_query = query.encode(_ENCODING)
85- selectors_list = lxb_css_selectors_parse(self .parser, < lxb_char_t * > bytes_query, < size_t> len (query ))
86+ selectors_list = lxb_css_selectors_parse(self .parser, < lxb_char_t * > bytes_query, < size_t> len (bytes_query ))
8687
8788 if selectors_list == NULL :
8889 PyErr_SetObject(SelectolaxError, " Can't parse CSS selector." )
@@ -93,12 +94,14 @@ cdef class LexborCSSSelector:
9394 < lxb_selectors_cb_f> css_matcher_callback, < void * > self )
9495 if status != LXB_STATUS_OK:
9596 lxb_css_selector_list_destroy_memory(selectors_list)
97+ self .parser.memory = NULL
9698 PyErr_SetObject(SelectolaxError, " Can't parse CSS selector." )
9799 return - 1
98100
99101 result = PyList_GET_SIZE(self .results) > 0
100102 self .results = []
101103 lxb_css_selector_list_destroy_memory(selectors_list)
104+ self .parser.memory = NULL
102105 return result
103106
104107 def __dealloc__ (self ):
0 commit comments