update readme
[m6w6/ext-psi] / src / types / impl_type.c
index f865bd899dac3129cff4f50a847c9d39bab29e27..e4ace47e69ed74326508025b3493eb188ec00b7f 100644 (file)
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *******************************************************************************/
 
-#include "php_psi_stdinc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# include "php_config.h"
+#endif
 #include "data.h"
 
-struct psi_impl_type *psi_impl_type_init(token_t type, const char *name)
+struct psi_impl_type *psi_impl_type_init(token_t type, zend_string *name)
 {
-       struct psi_impl_type *t = calloc(1, sizeof(*t));
+       struct psi_impl_type *t = pecalloc(1, sizeof(*t), 1);
 
        t->type = type;
-       t->name = strdup(name);
+       t->name = zend_string_copy(name);
 
        return t;
 }
 
+void psi_impl_type_dump(struct psi_dump *dump, struct psi_impl_type *type)
+{
+       PSI_DUMP(dump, "%s", type->name->val);
+}
+
 void psi_impl_type_free(struct psi_impl_type **type_ptr)
 {
        if (*type_ptr) {
                struct psi_impl_type *type = *type_ptr;
 
                *type_ptr = NULL;
-               if (type->token) {
-                       free(type->token);
-               }
-               free(type->name);
+               psi_token_free(&type->token);
+               zend_string_release(type->name);
                free(type);
        }
 }