projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
fix error message
[m6w6/ext-psi]
/
src
/
context.c
diff --git
a/src/context.c
b/src/context.c
index d1f808cb19512d076f90b4b024325d64ca25a9a8..da36c8ef6b13693cbbdb7931889433f5b8872e0a 100644
(file)
--- a/
src/context.c
+++ b/
src/context.c
@@
-142,7
+142,7
@@
void psi_context_build(struct psi_context *C, const char *paths)
psi_parser_parse(&P, I);
psi_context_add(C, &P);
psi_parser_dtor(&P);
psi_parser_parse(&P, I);
psi_context_add(C, &P);
psi_parser_dtor(&P);
-
free(
I);
+
psi_parser_input_free(&
I);
}
}
}
}
@@
-168,8
+168,7
@@
zend_function_entry *psi_context_compile(struct psi_context *C)
{
zend_constant zc;
{
zend_constant zc;
- zc.flags = CONST_PERSISTENT|CONST_CS;
- zc.module_number = EG(current_module)->module_number;
+ ZEND_CONSTANT_SET_FLAGS(&zc, CONST_CS|CONST_PERSISTENT, EG(current_module)->module_number);
if (C->consts) {
size_t i = 0;
if (C->consts) {
size_t i = 0;
@@
-177,11
+176,11
@@
zend_function_entry *psi_context_compile(struct psi_context *C)
while (psi_plist_get(C->consts, i++, &c)) {
while (psi_plist_get(C->consts, i++, &c)) {
- if (zend_get_constant
_str(c->name, strlen(c->name)
)) {
+ if (zend_get_constant
(c->name
)) {
continue;
}
continue;
}
- zc.name = zend_string_
init(c->name, strlen(c->name), 1
);
+ zc.name = zend_string_
copy(c->name
);
switch (c->type->type) {
case PSI_T_BOOL:
switch (c->type->type) {
case PSI_T_BOOL:
@@
-219,9
+218,9
@@
zend_function_entry *psi_context_compile(struct psi_context *C)
zend_string *name;
if (psi_decl_type_is_anon(e->name, "enum")) {
zend_string *name;
if (psi_decl_type_is_anon(e->name, "enum")) {
- name = strpprintf(0, "psi\\%s", item->name);
+ name = strpprintf(0, "psi\\%s", item->name
->val
);
} else {
} else {
- name = strpprintf(0, "psi\\%s\\%s", e->name
, item->name
);
+ name = strpprintf(0, "psi\\%s\\%s", e->name
->val, item->name->val
);
}
if (zend_get_constant(name)) {
}
if (zend_get_constant(name)) {
@@
-324,8
+323,13
@@
void psi_context_free(struct psi_context **C)
void psi_context_dump(struct psi_context *C, int fd)
{
void psi_context_dump(struct psi_context *C, int fd)
{
- dprintf(fd, "// psi.engine=%s\n",
- (char *) C->ops->query(C, PSI_CONTEXT_QUERY_SELF, NULL));
+ size_t i;
+
+ dprintf(fd, "// psi.engine=%s\n// %lu files\n",
+ (char *) C->ops->query(C, PSI_CONTEXT_QUERY_SELF, NULL),
+ C->count);
- psi_data_dump(fd, PSI_DATA(C));
+ for (i = 0; i < C->count; ++i) {
+ psi_data_dump(fd, &C->data[i]);
+ }
}
}