Index: /trunk/processor/processor.m4
===================================================================
--- /trunk/processor/processor.m4	(revision 247)
+++ /trunk/processor/processor.m4	(revision 248)
@@ -165,5 +165,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]));
 						')
 						IFCALCSTORE(`processor->have_references = 1;')
@@ -183,4 +183,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) {
@@ -198,4 +199,5 @@
 			IFDPRINT(`INDENT()`'fprintf(stderr, "[%p]", src[0]);')
 			STRUCT_P_EX(zval, dst[0], src[0], `[0]', `', ` ')
+			FIXPOINTER_EX(zval, dst[0])
 		} while (0);
 	')
@@ -735,14 +737,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);
-			}
-		}
-	')
 	IFDPRINT(`INDENT()`'fprintf(stderr, "zval:value");')
 	STRUCT_P_EX(zval_ptr, dst->value, src->value, `value', `', `&')
