@@ -86,7 +86,7 @@ static bufsize_t subject_find_special_char(subject *subj, int options);
8686// Create an inline with a literal string value.
8787static inline cmark_node * make_literal (subject * subj , cmark_node_type t ,
8888 int start_column , int end_column ) {
89- cmark_node * e = (cmark_node * )subj -> mem -> calloc (1 , sizeof (* e ));
89+ cmark_node * e = (cmark_node * )subj -> mem -> calloc (subj -> mem -> ctx , 1 , sizeof (* e ));
9090 e -> mem = subj -> mem ;
9191 e -> type = (uint16_t )t ;
9292 e -> start_line = e -> end_line = subj -> line ;
@@ -98,15 +98,15 @@ static inline cmark_node *make_literal(subject *subj, cmark_node_type t,
9898
9999// Create an inline with no value.
100100static inline cmark_node * make_simple (cmark_mem * mem , cmark_node_type t ) {
101- cmark_node * e = (cmark_node * )mem -> calloc (1 , sizeof (* e ));
101+ cmark_node * e = (cmark_node * )mem -> calloc (mem -> ctx , 1 , sizeof (* e ));
102102 e -> mem = mem ;
103103 e -> type = t ;
104104 return e ;
105105}
106106
107107static cmark_node * make_str (subject * subj , int sc , int ec , cmark_chunk s ) {
108108 cmark_node * e = make_literal (subj , CMARK_NODE_TEXT , sc , ec );
109- e -> data = (unsigned char * )subj -> mem -> realloc (NULL , s .len + 1 );
109+ e -> data = (unsigned char * )subj -> mem -> realloc (subj -> mem -> ctx , NULL , s .len + 1 );
110110 if (s .data != NULL ) {
111111 memcpy (e -> data , s .data , s .len );
112112 }
@@ -161,7 +161,7 @@ static unsigned char *cmark_strdup(cmark_mem *mem, unsigned char *src) {
161161 return NULL ;
162162 }
163163 size_t len = strlen ((char * )src );
164- unsigned char * data = (unsigned char * )mem -> realloc (NULL , len + 1 );
164+ unsigned char * data = (unsigned char * )mem -> realloc (mem -> ctx , NULL , len + 1 );
165165 memcpy (data , src , len + 1 );
166166 return data ;
167167}
@@ -516,7 +516,7 @@ static void remove_delimiter(subject *subj, delimiter *delim) {
516516 if (delim -> previous != NULL ) {
517517 delim -> previous -> next = delim -> next ;
518518 }
519- subj -> mem -> free (delim );
519+ subj -> mem -> free (subj -> mem -> ctx , delim );
520520}
521521
522522static void pop_bracket (subject * subj ) {
@@ -525,12 +525,12 @@ static void pop_bracket(subject *subj) {
525525 return ;
526526 b = subj -> last_bracket ;
527527 subj -> last_bracket = subj -> last_bracket -> previous ;
528- subj -> mem -> free (b );
528+ subj -> mem -> free (subj -> mem -> ctx , b );
529529}
530530
531531static void push_delimiter (subject * subj , unsigned char c , bool can_open ,
532532 bool can_close , cmark_node * inl_text ) {
533- delimiter * delim = (delimiter * )subj -> mem -> calloc (1 , sizeof (delimiter ));
533+ delimiter * delim = (delimiter * )subj -> mem -> calloc (subj -> mem -> ctx , 1 , sizeof (delimiter ));
534534 delim -> delim_char = c ;
535535 delim -> can_open = can_open ;
536536 delim -> can_close = can_close ;
@@ -546,7 +546,7 @@ static void push_delimiter(subject *subj, unsigned char c, bool can_open,
546546}
547547
548548static void push_bracket (subject * subj , bool image , cmark_node * inl_text ) {
549- bracket * b = (bracket * )subj -> mem -> calloc (1 , sizeof (bracket ));
549+ bracket * b = (bracket * )subj -> mem -> calloc (subj -> mem -> ctx , 1 , sizeof (bracket ));
550550 if (subj -> last_bracket != NULL ) {
551551 subj -> last_bracket -> bracket_after = true;
552552 }
@@ -992,7 +992,7 @@ static cmark_node *handle_pointy_brace(subject *subj, int options) {
992992 subj -> pos += matchlen ;
993993 cmark_node * node = make_literal (subj , CMARK_NODE_HTML_INLINE ,
994994 subj -> pos - matchlen - 1 , subj -> pos - 1 );
995- node -> data = (unsigned char * )subj -> mem -> realloc (NULL , len + 1 );
995+ node -> data = (unsigned char * )subj -> mem -> realloc (subj -> mem -> ctx , NULL , len + 1 );
996996 memcpy (node -> data , src , len );
997997 node -> data [len ] = 0 ;
998998 node -> len = len ;
0 commit comments