*arg_ptr = NULL;
if (arg->token && arg->token != arg->var->token) {
- free(arg->token);
+ psi_token_free(&arg->token);
}
psi_decl_type_free(&arg->type);
psi_decl_var_free(&arg->var);
}
dprintf(fd, " %s(*%s)",
psi_t_indirection(arg->var->pointer_level - !! arg->var->array_size),
- arg->var->name);
+ arg->var->name->val);
dprintf(fd, "(");
if (arg->type->real.func->args) {
size_t j = 0;
if (!psi_decl_type_validate(data, arg->type, NULL, scope)) {
if (!arg->var->pointer_level) {
data->error(data, arg->type->token, PSI_WARNING,
- "Cannot use '%s' as type for '%s'%s%s", arg->type->name,
- arg->var->name, *data->last_error ? ": " : "", data->last_error);
+ "Cannot use '%s' as type for '%s'%s%s",
+ arg->type->name->val,
+ arg->var->name->val,
+ *data->last_error ? ": " : "", data->last_error);
return false;
}
}
def->type->type = PSI_T_POINTER;
} else {
data->error(data, def->token, PSI_WARNING,
- "Type '%s' cannot be aliased to 'void'", def->type->name);
+ "Type '%s' cannot be aliased to 'void'",
+ def->type->name->val);
return false;
}
} else if (!psi_decl_type_validate(data, def->type, def, scope)) {
break;
}
data->error(data, def->token, PSI_WARNING,
- "Type '%s' cannot be aliased to '%s%s'%s%s", def->var->name, pre,
- def->type->name, *data->last_error ? ": " : "", data->last_error);
+ "Type '%s' cannot be aliased to '%s%s'%s%s",
+ def->var->name->val, pre,
+ def->type->name->val,
+ *data->last_error ? ": " : "", data->last_error);
return false;
}
}
struct psi_decl_arg *psi_decl_arg_get_by_name(struct psi_plist *args,
- const char *name)
+ zend_string *name)
{
size_t i = 0;
struct psi_decl_arg *arg;
if (args)
while (psi_plist_get(args, i++, &arg)) {
- if (!strcmp(name, arg->var->name)) {
+ if (zend_string_equals(name, arg->var->name)) {
return arg;
}
}
return var->arg = arg;
}
- if (func && !strcmp(var->name, func->var->name)) {
+ if (func && zend_string_equals(var->name, func->var->name)) {
return var->arg = func;
}