Index: trunk/processor/head.m4
===================================================================
--- trunk/processor/head.m4	(revision 825)
+++ trunk/processor/head.m4	(revision 836)
@@ -31,4 +31,8 @@
 define(`SIZEOF_zval_ptr_nullable', `sizeof(zval_ptr_nullable)')
 define(`COUNTOF_zval_ptr_nullable', `1')
+define(`SIZEOF_zend_trait_alias_ptr', `sizeof(zend_trait_alias)')
+define(`COUNTOF_zend_trait_alias_ptr', `1')
+define(`SIZEOF_zend_trait_precedence_ptr', `sizeof(zend_trait_precedence)')
+define(`COUNTOF_zend_trait_precedence_ptr', `1')
 define(`SIZEOF_xc_entry_name_t', `sizeof(xc_entry_name_t)')
 define(`COUNTOF_xc_entry_name_t', `1')
@@ -52,4 +56,9 @@
 typedef zval *zval_ptr;
 typedef zval *zval_ptr_nullable;
+#ifdef ZEND_ENGINE_2_4
+typedef zend_trait_alias *zend_trait_alias_ptr;
+typedef zend_trait_precedence *zend_trait_precedence_ptr;
+#endif
+
 typedef zend_uchar zval_data_type;
 #ifdef IS_UNICODE
@@ -92,4 +101,18 @@
 };
 /* }}} */
+/* {{{ memsetptr */
+IFASSERT(`dnl
+static void *memsetptr(void *mem, void *content, size_t n)
+{
+	void **p = (void **) mem;
+	void **end = (char *) mem + n;
+	while (p < end) {
+		*p = content;
+		p += sizeof(content);
+	}
+	return mem;
+}
+')
+/* }}} */
 #ifdef HAVE_XCACHE_DPRINT
 static void xc_dprint_indent(int indent) /* {{{ */
@@ -315,5 +338,5 @@
 /* {{{ field name checker */
 IFASSERT(`dnl
-int xc_check_names(const char *file, int line, const char *functionName, const char **assert_names, int assert_names_count, HashTable *done_names)
+static int xc_check_names(const char *file, int line, const char *functionName, const char **assert_names, int assert_names_count, HashTable *done_names)
 {
 	int errors = 0;
