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_decl_enum *psi_decl_enum_init(zend_string *name, struct psi_plist *l)
{
- struct psi_decl_enum *e = calloc(1, sizeof(*e));
+ struct psi_decl_enum *e = pecalloc(1, sizeof(*e), 1);
e->name = zend_string_copy(name);
e->items = l;
return e;
}
}
-void psi_decl_enum_dump(int fd, struct psi_decl_enum *e, unsigned level)
+void psi_decl_enum_dump(struct psi_dump *dump, struct psi_decl_enum *e, unsigned level)
{
- dprintf(fd, "enum %s {\n", e->name->val);
- if (e->items) {
- size_t i = 0;
- struct psi_decl_enum_item *item;
+ size_t i = 0;
+ struct psi_decl_enum_item *item;
+ PSI_DUMP(dump, "enum ");
+ if (!psi_decl_type_is_anon(e->name, "enum")) {
+ PSI_DUMP(dump, "%s ", e->name->val);
+ }
+ if (e->items) {
+ PSI_DUMP(dump, "{\n");
while (psi_plist_get(e->items, i++, &item)) {
if (i > 1) {
- dprintf(fd, ",\n");
+ PSI_DUMP(dump, ",\n");
}
- dprintf(fd, "%s", psi_t_indent(level + 1));
- psi_decl_enum_item_dump(fd, item);
+ PSI_DUMP(dump, "%s", psi_t_indent(level + 1));
+ psi_decl_enum_item_dump(dump, item);
}
+ PSI_DUMP(dump, "%s\n} ", psi_t_indent(level));
}
- dprintf(fd, "\n}");
}
bool psi_decl_enum_validate(struct psi_data *data, struct psi_decl_enum *e)