joce Architecte / Développeur principal "BugHunter" | Du coup je sais pas trop s'il faut ranger dans C ou dans PHP
Je galère grave avec ce qui ressemble à un pb d'allocation mémoire sur une extension PHP (le code est assez simple).
En gros j'aimerais stocker dans un array les paramètres courant d'une fonction, qui seront ensuite passés à une nouvelle fonction PHP.
J'aimerais que les paramètres ne sont pas des copies, mais des références, du coup je n'incrémente que le refcount de chaque argument, mais ca à l'air de souvent foirer :
Ex :
Code :
- zval *element;
- ALLOC_ZVAL(element);
- // copy the value, type & refcount / is_ref
- INIT_PZVAL_COPY(element, *((zval **) (p-(arg_count-i))));
- // increment the ref count
- zval_add_ref(&element);
- zend_hash_next_index_insert((*args[0])->value.ht, &element, sizeof(zval *), NULL);
|
ce args[0] sera transmis à la nouvelle fonction PHP via :
Code :
- call_user_function_ex(EG(function_table), NULL, cl->func, &retval, arg_count, args, 0,NULL TSRMLS_CC);
|
Si vous voyez un truc totalement débile dans ce bout de code ou dans le concept, je suis preneur ! |