Changeset 1448 in svn
- Timestamp:
- 2013-11-07T10:04:00Z (6 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mod_cacher/xc_cacher.c
r1446 r1448 182 182 fprintf(stderr, "%lu\n", stored_php->size); 183 183 memcpy(p, stored_php, stored_php->size); 184 xc_processor_relocate_xc_entry_data_php_t(p, stored_php, p TSRMLS_CC);184 xc_processor_relocate_xc_entry_data_php_t(p, stored_php, 0, p TSRMLS_CC); 185 185 } 186 186 #endif -
trunk/processor/foot.m4
r1446 r1448 136 136 } 137 137 dnl }}} 138 #define ptradd(type, ptr, ptrdiff) ((type) ((char *) (ptr) + (ptrdiff))) 139 #define ptrsub(ptr1, ptr2) ((char *) (ptr1) - (char *)(ptr2)) 138 140 define(`DEFINE_RELOCATE_API', ` 139 EXPORTED_FUNCTION(`void xc_processor_relocate_$1($1 * src, $1 *old_start, $1 *new_start TSRMLS_DC)') dnl {{{141 EXPORTED_FUNCTION(`void xc_processor_relocate_$1($1 *old_src, $1 *old_start, $1 *new_src, $1 *new_start TSRMLS_DC)') dnl {{{ 140 142 { 141 /* 142 $1 *xc_addressof(offset) { 143 return (char *) offset + (ptrdiff_t) old_start; 144 } 145 */ 146 ptrdiff_t ptrdiff = /* offset + */ (ptrdiff_t) old_start; 143 ptrdiff_t offset_from_old_start = 0; /* unkown X used later */ 144 $1 *const old_address = ptradd($1 *, offset_from_old_start, (ptrdiff_t) old_start); 145 ptrdiff_t offset = ptrsub(old_address, old_src); 146 $1 *const new_address = ptradd($1 *, new_src, offset); 147 147 148 /* 149 ptrdiff_t *xc_offsetof(offset) { 150 return (char *) xc_addressof(offset) - src; 151 } 148 /* diff to new_ptr */ 149 ptrdiff_t ptrdiff = (ptrdiff_t) new_address; 150 ptrdiff_t relocatediff = (ptrdiff_t) ptradd($1 *, new_start, offset); 152 151 153 $1 *xc_newoffset(offset) { 154 return new_start + xc_offsetof(offset); 155 } 156 */ 157 ptrdiff_t relocatediff = new_start + (/* offset + */ ptrdiff - (ptrdiff_t) src); 158 159 xc_relocate_$1(src, ptrdiff, relocatediff TSRMLS_CC); 152 xc_relocate_$1(new_src, ptrdiff, relocatediff TSRMLS_CC); 160 153 } 161 154 dnl }}}
Note: See TracChangeset
for help on using the changeset viewer.