PHPAPI size_t _php_stream_copy_to_mem(php_stream *src, char **buf, size_t maxlen, int persistent STREAMS_DC TSRMLS_DC) { HPHP::String s; if (maxlen == PHP_STREAM_COPY_ALL) { HPHP::StringBuffer sb; sb.read(src); s = sb.detach(); } else { s = src->read(maxlen); } *buf = const_cast<char*>(s->data()); return s->size(); }
PHPAPI size_t _php_stream_copy_to_mem(php_stream *src, char **buf, size_t maxlen, int persistent STREAMS_DC TSRMLS_DC) { HPHP::String s; if (maxlen == PHP_STREAM_COPY_ALL) { HPHP::StringBuffer sb; sb.read(src->hphp_file); s = sb.detach(); } else { s = src->hphp_file->read(maxlen); } *buf = (char*) emalloc(s->size()); memcpy(*buf, s->data(), s->size()); return s->size(); }