X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=src%2Fparser.re;h=926cc7cf02a279dc38a4c9b8bf8d9c89ea430705;hb=f854ff4c520183dbd820f61b958c9794cfd3a1fd;hp=2085a1288f9b14fa0d23d88f32f1d53f81c617d6;hpb=2fa436074ca9a5e87f39b696de832fa2188fcfc6;p=m6w6%2Fext-psi diff --git a/src/parser.re b/src/parser.re index 2085a12..926cc7c 100644 --- a/src/parser.re +++ b/src/parser.re @@ -164,19 +164,20 @@ void psi_parser_postprocess(struct psi_parser *P) struct psi_const *cnst; struct psi_num_exp *num; smart_str ns_name = {0}; - zend_string *name_str; + zend_string *name_str, *type_str; smart_str_appendl_ex(&ns_name, ZEND_STRL("psi\\"), 1); smart_str_append_ex(&ns_name, name, 1); name_str = smart_str_extract(&ns_name); + type_str = zend_string_init(ZEND_STRL(""), 1); num = psi_num_exp_copy(scope.macro->exp); def = psi_impl_def_val_init(PSI_T_NUMBER, num); - type = psi_impl_type_init(PSI_T_NUMBER, - zend_string_init(ZEND_STRL(""), 1)); + type = psi_impl_type_init(PSI_T_NUMBER, type_str); cnst = psi_const_init(type, name_str, def); P->consts = psi_plist_add(P->consts, &cnst); zend_string_release(name_str); + zend_string_release(type_str); } } else { if (psi_plist_count(scope.macro->tokens) == 1) { @@ -188,18 +189,19 @@ void psi_parser_postprocess(struct psi_parser *P) struct psi_impl_def_val *def; struct psi_const *cnst; smart_str ns_name = {0}; - zend_string *name_str; + zend_string *name_str, *type_str; smart_str_appendl_ex(&ns_name, ZEND_STRL("psi\\"), 1); smart_str_append_ex(&ns_name, name, 1); name_str = smart_str_extract(&ns_name); + type_str = zend_string_init(ZEND_STRL("string"), 1); - type = psi_impl_type_init(PSI_T_STRING, - zend_string_init(ZEND_STRL("string"), 1)); + type = psi_impl_type_init(PSI_T_STRING, type_str); def = psi_impl_def_val_init(PSI_T_QUOTED_STRING, t->text); cnst = psi_const_init(type, name_str, def); P->consts = psi_plist_add(P->consts, &cnst); zend_string_release(name_str); + zend_string_release(type_str); } } }