Index: trunk/xcache.h
===================================================================
--- trunk/xcache.h	(revision 851)
+++ trunk/xcache.h	(revision 854)
@@ -355,5 +355,4 @@
 /* }}} */
 #endif
-typedef enum { XC_TYPE_PHP, XC_TYPE_VAR } xc_entry_type_t;
 typedef struct {
 	char digest[16];
@@ -369,7 +368,6 @@
 /* {{{ xc_entry_data_php_t */
 struct _xc_entry_data_php_t {
+	xc_entry_data_php_t *next;
 	xc_hash_value_t      hvalue;
-	xc_entry_data_php_t *next;
-	xc_cache_t          *cache;
 
 	xc_md5sum_t md5;        /* md5sum of the source */
@@ -410,21 +408,10 @@
 };
 /* }}} */
-/* {{{ xc_entry_data_var_t */
-typedef struct {
-	zval   *value;
-
-	zend_bool  have_references;
-} xc_entry_data_var_t;
-/* }}} */
 typedef zvalue_value xc_entry_name_t;
 /* {{{ xc_entry_t */
 struct _xc_entry_t {
-	xc_hash_value_t hvalue;
-	xc_entry_t     *next;
-	xc_cache_t     *cache;
-
-	xc_entry_type_t type;
-	size_t          size;
-
+	xc_entry_t *next;
+
+	size_t     size;
 	time_t     ctime;           /* creation ctime of this entry */
 	time_t     atime;           /*   access atime of this entry */
@@ -437,13 +424,9 @@
 #endif
 	xc_entry_name_t name;
-
-	union {
-		xc_entry_data_php_t *php;
-		xc_entry_data_var_t var;
-	} data;
 };
 
 typedef struct {
 	xc_entry_t entry;
+	xc_entry_data_php_t *php;
 
 	zend_ulong refcount;    /* count of php instances holding this entry */
@@ -466,4 +449,15 @@
 } xc_entry_php_t;
 /* }}} */
+typedef struct {
+	xc_entry_t entry;
+	zval      *value;
+	zend_bool  have_references;
+} xc_entry_var_t;
+/* }}} */
+typedef struct xc_entry_hash_t { /* {{{ */
+	xc_hash_value_t cacheslotid;
+	xc_hash_value_t entryslotid;
+} xc_entry_hash_t;
+/* }}} */
 
 extern zend_module_entry xcache_module_entry;
