1
0
Fork 0

improve readability using ptradd

git-svn-id: svn://svn.lighttpd.net/xcache/trunk@1452 c26eb9a1-5813-0410-bd6c-c2e55f420ca7
This commit is contained in:
Xuefer 2013-11-08 07:21:40 +00:00
parent eaa50fbafc
commit dae85e876d
3 changed files with 5 additions and 3 deletions

View File

@ -135,8 +135,6 @@ EXPORTED_FUNCTION(`zval *xc_processor_restore_zval(zval *dst, const zval *src, z
return dst;
}
dnl }}}
#define ptradd(type, ptr, ptrdiff) ((type) ((char *) (ptr) + (ptrdiff)))
#define ptrsub(ptr1, ptr2) ((char *) (ptr1) - (char *)(ptr2))
define(`DEFINE_RELOCATE_API', `
EXPORTED_FUNCTION(`void xc_processor_relocate_$1($1 *old_src, $1 *old_start, $1 *new_src, $1 *new_start TSRMLS_DC)') dnl {{{
{
@ -148,6 +146,7 @@ EXPORTED_FUNCTION(`void xc_processor_relocate_$1($1 *old_src, $1 *old_start, $1
/* diff to new_ptr */
ptrdiff_t ptrdiff = (ptrdiff_t) new_address;
ptrdiff_t relocatediff = (ptrdiff_t) ptradd($1 *, new_start, offset);
assert(new_src == ptradd($1 *, old_src, ptrdiff));
xc_relocate_$1(new_src, ptrdiff, relocatediff TSRMLS_CC);
}

View File

@ -80,6 +80,9 @@ typedef UChar zstr_uchar;
typedef char zstr_char;
#define MAX_DUP_STR_LEN 256
#define ptradd(type, ptr, ptrdiff) ((type) (((char *) (ptr)) + (ptrdiff)))
#define ptrsub(ptr1, ptr2) (((char *) (ptr1)) - ((char *) (ptr2)))
dnl }}}
dnl {{{ _xc_processor_t
typedef struct _xc_processor_t {

View File

@ -25,7 +25,7 @@ dnl ============
define(`INDENT', `xc_dprint_indent(indent);')
dnl }}}
dnl {{{ SRCPTR_EX(1:type, 2:elm)
define(`SRCPTR_EX', `IFRELOCATE(`(($1 *) (((char *) $2) + ptrdiff))', `$2')')
define(`SRCPTR_EX', `IFRELOCATE(`ptradd($1 *, $2, ptrdiff)', `$2')')
dnl }}}
dnl {{{ ALLOC(1:dst, 2:type, 3:count=1, 4:clean=false, 5:realtype=$2)
define(`ALLOC', `