#ifdef USE_ST_LIBRARY\r
if (IS_NULL(t)) {\r
t = onig_st_init_strend_table_with_size(INIT_NAMES_ALLOC_NUM);\r
+ CHECK_NULL_RETURN_MEMERR(t);\r
reg->name_table = (void* )t;\r
}\r
e = (NameEntry* )xmalloc(sizeof(NameEntry));\r
#ifdef USE_ST_LIBRARY\r
if (IS_NULL(t)) {\r
t = onig_st_init_callout_name_table_with_size(INIT_NAMES_ALLOC_NUM);\r
+ CHECK_NULL_RETURN_MEMERR(t);\r
GlobalCalloutNameTable = t;\r
}\r
e = (CalloutNameEntry* )xmalloc(sizeof(CalloutNameEntry));\r
CalloutListEntry* e;\r
\r
e = onig_reg_callout_list_at(reg, callout_num);\r
+ CHECK_NULL_RETURN(e);\r
return e->start_func;\r
}\r
\r
onig_get_callout_tag_start(regex_t* reg, int callout_num)\r
{\r
CalloutListEntry* e = onig_reg_callout_list_at(reg, callout_num);\r
+ CHECK_NULL_RETURN(e);\r
return e->tag_start;\r
}\r
\r
onig_get_callout_tag_end(regex_t* reg, int callout_num)\r
{\r
CalloutListEntry* e = onig_reg_callout_list_at(reg, callout_num);\r
+ CHECK_NULL_RETURN(e);\r
return e->tag_end;\r
}\r
\r
r = callout_tag_entry_raw(ext->tag_table, name, name_end, entry_val);\r
\r
e = onig_reg_callout_list_at(reg, (int )entry_val);\r
+ CHECK_NULL_RETURN_MEMERR(e);\r
e->tag_start = name;\r
e->tag_end = name_end;\r
\r
Node* node;\r
\r
node = node_new_anychar();\r
+ CHECK_NULL_RETURN(node);\r
+\r
ct = CTYPE_(node);\r
ct->options = option;\r
NODE_STATUS_ADD(node, FIXED_OPTION);\r
node_new_str_raw(UChar* s, UChar* end)\r
{\r
Node* node = node_new_str(s, end);\r
+ CHECK_NULL_RETURN(node);\r
NODE_STRING_SET_RAW(node);\r
return node;\r
}\r
p = onigenc_get_prev_char_head(enc, sn->s, sn->end);\r
if (p && p > sn->s) { /* can be split. */\r
rn = node_new_str(p, sn->end);\r
+ CHECK_NULL_RETURN(rn);\r
if (NODE_STRING_IS_RAW(node))\r
NODE_STRING_SET_RAW(rn);\r
\r
}\r
\r
e = onig_reg_callout_list_at(env->reg, num);\r
+ if (IS_NULL(e)) {\r
+ xfree(contents);\r
+ return ONIGERR_MEMORY;\r
+ }\r
+\r
e->of = ONIG_CALLOUT_OF_CONTENTS;\r
e->in = in;\r
e->name_id = ONIG_NON_NAME_ID;\r
if (r != ONIG_NORMAL) return r;\r
\r
e = onig_reg_callout_list_at(env->reg, num);\r
+ CHECK_NULL_RETURN_MEMERR(e);\r
+\r
e->of = ONIG_CALLOUT_OF_NAME;\r
e->in = in;\r
e->name_id = name_id;\r
}\r
else {\r
*top = node_new_list(node, NULL);\r
+ if (IS_NULL(*top)) {\r
+ onig_node_free(node);\r
+ return ONIGERR_MEMORY;\r
+ }\r
+\r
headp = &(NODE_CDR(*top));\r
while (r != TK_EOT && r != term && r != TK_ALT) {\r
r = parse_exp(&node, tok, term, src, end, env);\r
env->parse_depth++;\r
if (env->parse_depth > ParseDepthLimit)\r
return ONIGERR_PARSE_DEPTH_LIMIT_OVER;\r
+\r
r = parse_branch(&node, tok, term, src, end, env);\r
if (r < 0) {\r
onig_node_free(node);\r
}\r
else if (r == TK_ALT) {\r
*top = onig_node_new_alt(node, NULL);\r
+ if (IS_NULL(*top)) {\r
+ onig_node_free(node);\r
+ return ONIGERR_MEMORY;\r
+ }\r
+\r
headp = &(NODE_CDR(*top));\r
while (r == TK_ALT) {\r
r = fetch_token(tok, src, end, env);\r
return r;\r
}\r
*headp = onig_node_new_alt(node, NULL);\r
+ if (IS_NULL(*headp)) {\r
+ onig_node_free(node);\r
+ onig_node_free(*top);\r
+ return ONIGERR_MEMORY;\r
+ }\r
+\r
headp = &(NODE_CDR(*headp));\r
}\r
\r