Index: /branches/1.1/processor/processor.m4
===================================================================
--- /branches/1.1/processor/processor.m4	(revision 122)
+++ /branches/1.1/processor/processor.m4	(revision 252)
@@ -160,5 +160,5 @@
 							dst[0] = *ppzv;
 							/* *dst is updated */
-							dnl fprintf(stderr, "*dst is set to %p\n", dst[0]);
+							dnl fprintf(stderr, "*dst is set to %p, KIND is_shm %d\n", dst[0], xc_is_shm(dst[0]));
 						')
 						IFSTORE(`assert(xc_is_shm(dst[0]));')
@@ -177,4 +177,5 @@
 					', `
 						zval_ptr pzv = dst[0];
+						FIXPOINTER_EX(zval, pzv)
 					')
 					if (zend_hash_add(&processor->zvalptrs, (char *)src[0], sizeof(src[0]), (void*)&pzv, sizeof(pzv), NULL) == SUCCESS) {
@@ -191,4 +192,5 @@
 			')
 			STRUCT_P_EX(zval, dst[0], src[0], `[0]', `', ` ')
+			FIXPOINTER_EX(zval, dst[0])
 		} while (0);
 	')
@@ -216,5 +218,9 @@
 	DISPATCH(int, flags)
 	DISPATCH(uint, name_len)
+	pushdef(`emalloc', `malloc($1)')
+	pushdef(`ecalloc', `calloc($1, $2)')
 	PROC_ZSTRING_L(, name, name_len)
+	popdef(`ecalloc')
+	popdef(`emalloc')
 	DISPATCH(int, module_number)
 ')
@@ -711,14 +717,4 @@
 dnl }}}
 DEF_STRUCT_P_FUNC(`xc_entry_data_var_t', , `dnl {{{
-	IFSTORE(`
-		if (processor->reference) {
-			if (zend_hash_add(&processor->zvalptrs, (char *)&src->value, sizeof(&src->value), (void*)&src->value, sizeof(src->value), NULL) == SUCCESS) {
-				dnl fprintf(stderr, "mark[%p] = %p\n", &src->value, &dst->value);
-			}
-			else {
-				assert(0);
-			}
-		}
-	')
 	STRUCT_P_EX(zval_ptr, dst->value, src->value, `value', `', `&')
 	DONE(value)
