Skip to content

Instantly share code, notes, and snippets.

@dstogov
Created March 12, 2019 12:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dstogov/a95b68abab74aa4018f78a89aabdd36b to your computer and use it in GitHub Desktop.
Save dstogov/a95b68abab74aa4018f78a89aabdd36b to your computer and use it in GitHub Desktop.
static int stats_wrap_stream_wrapper(zval *pDest)
{
php_stream_wrapper *stream_wrapper = (php_stream_wrapper*)Z_PTR_P(pDest);
if(stream_wrapper->wops->stream_opener == stats_stream_opener) {
return ZEND_HASH_APPLY_KEEP;
}
php_stream_wrapper *new_wrapper = (php_stream_wrapper*)malloc(sizeof(php_stream_wrapper));
stats_stream_wrapper_ops *monitor_wops = (stats_stream_wrapper_ops*)malloc(sizeof(stats_stream_wrapper_ops));
memcpy(new_wrapper, stream_wrapper, sizeof(php_stream_wrapper));
stats_stream_wrapper_ops_ctor(monitor_wops, new_wrapper);
new_wrapper->wops = (php_stream_wrapper_ops*)monitor_wops;
Z_PTR_P(pDest) = new_wrapper;
return ZEND_HASH_APPLY_KEEP;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment