| | 30 | dnl {{{ DISPATCH_ARRAY(1:count, 2:type, 3:elm) |
| | 31 | define(`DISPATCH_ARRAY', ` |
| | 32 | if (src->$3) { |
| | 33 | int i; |
| | 34 | IFDASM(` |
| | 35 | zval *arr; |
| | 36 | ALLOC_INIT_ZVAL(arr); |
| | 37 | array_init(arr); |
| | 38 | for (i = 0; i < src->$1; i ++) { |
| | 39 | ifelse( |
| | 40 | `$2', `zend_bool', `add_assoc_bool_ex(arr, ZEND_STRS("$3"), src->$3[i] ? 1 : 0);' |
| | 41 | , `', `', `add_assoc_long_ex(arr, ZEND_STRS("$3"), src->$3[i]);') |
| | 42 | } |
| | 43 | add_assoc_zval_ex(dst, ZEND_STRS("$3"), arr); |
| | 44 | ', ` |
| | 45 | COPY_N_EX($@) |
| | 46 | for (i = 0; i < src->$1; i ++) { |
| | 47 | DISABLECHECK(` |
| | 48 | DISPATCH(`$2', `$3[i]', `$4') |
| | 49 | ') |
| | 50 | } |
| | 51 | ')dnl IFDASM |
| | 52 | DONE(`$3') |
| | 53 | } |
| | 54 | else { |
| | 55 | COPYNULL(`$3') |
| | 56 | } |
| | 57 | ') |
| | 58 | dnl }}} |