我试图将一些数据传递给一个存储在zval中的对象,该对象在php扩展名中包含以下代码,然后收到分段错误错误。
核心:注意AH00052:子pid 8649退出信号分割故障(11)
有没有人能帮助我理解为什么我会得到这个错误,以及调用对象方法的正确方法是什么?
谢谢!
//create zval with the data
zval *zbuffer;
MAKE_STD_ZVAL(zbuffer);
ZVAL_STRINGL(zbuffer, WS_G(buffer), WS_G(bufferLen), 1);
///push data in object
zval *retval_ptr;
zend_call_method( *WS_G(zobj), ce, NULL, "push", strlen("push"), &retval_ptr, 1, zbuffer, NULL TSRMLS_CC );发布于 2013-10-25 11:13:51
问题似乎在于我是如何创建zbuffer的--正确的代码是:
zval *zbuffer;
MAKE_STD_ZVAL(zbuffer);
Z_TYPE_P(zbuffer) = IS_STRING;
Z_STRVAL_P(zbuffer) = WS_G(buffer);
Z_STRLEN_P(zbuffer) = WS_G(bufferLen);谢谢!
https://stackoverflow.com/questions/19586068
复制相似问题