X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fcontext.c;h=7b48c921044706c84b0fad5e20a5a6a5e2734bc0;hp=be8bae9cbdf7b8385b5ef3abe7f157ea1e4e9089;hb=b1c7c64ca1d1d9dc79a59c0f612bd07e7a997a60;hpb=a7ac1c0a3c855321f21682c127a4b707de33a303 diff --git a/src/context.c b/src/context.c index be8bae9..7b48c92 100644 --- a/src/context.c +++ b/src/context.c @@ -235,29 +235,7 @@ zend_function_entry *psi_context_compile(struct psi_context *C) } zc.name = zend_string_copy(c->name); - - switch (c->type ? c->type->type : c->val->type) { - case PSI_T_BOOL: - ZVAL_BOOL(&zc.value, c->val->ival.zend.bval); - break; - case PSI_T_INT: - ZVAL_LONG(&zc.value, c->val->ival.zend.lval); - break; - case PSI_T_FLOAT: - case PSI_T_DOUBLE: - ZVAL_DOUBLE(&zc.value, c->val->ival.dval); - break; - case PSI_T_STRING: - case PSI_T_QUOTED_STRING: - ZVAL_NEW_STR(&zc.value, zend_string_copy(c->val->ival.zend.str)); - if (ZSTR_IS_INTERNED(Z_STR(zc.value))) { - Z_TYPE_FLAGS(zc.value) = 0; - } - break; - default: - assert(0); - break; - } + psi_impl_def_val_get_zval(c->val, c->type ? c->type->type : PSI_T_MIXED, &zc.value); zend_register_constant(&zc); } @@ -380,8 +358,6 @@ void psi_context_free(struct psi_context **C) void psi_context_dump(struct psi_dump *dump, struct psi_context *C) { - size_t i; - PSI_DUMP(dump, "// psi.engine=%s\n// %lu files\n", (char *) C->ops->query(C, PSI_CONTEXT_QUERY_SELF, NULL), C->count); @@ -390,8 +366,10 @@ void psi_context_dump(struct psi_dump *dump, struct psi_context *C) #if 0 if (C->flags & PSI_DEBUG) { + size_t i; + for (i = 0; i < C->count; ++i) { - psi_data_dump(fd, &C->data[i]); + psi_data_dump(dump, &C->data[i]); } } #endif