Lines Matching refs:handler

55 static inline php_output_handler_status_t php_output_handler_op(php_output_handler *handler, php_ou…
56 static inline int php_output_handler_append(php_output_handler *handler, const php_output_buffer *b…
57 static inline zval *php_output_handler_status(php_output_handler *handler, zval *entry);
179 php_output_handler **handler = NULL; in php_output_deactivate() local
190 while ((handler = zend_stack_top(&OG(handlers)))) { in php_output_deactivate()
191 php_output_handler_free(handler); in php_output_deactivate()
417 php_output_handler *handler; in php_output_start_default() local
419handler = php_output_handler_create_internal(ZEND_STRL(php_output_default_handler_name), php_outpu… in php_output_start_default()
420 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_default()
423 php_output_handler_free(&handler); in php_output_start_default()
432 php_output_handler *handler; in php_output_start_devnull() local
434handler = php_output_handler_create_internal(ZEND_STRL(php_output_devnull_handler_name), php_outpu… in php_output_start_devnull()
435 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_devnull()
438 php_output_handler_free(&handler); in php_output_start_devnull()
447 php_output_handler *handler; in php_output_start_user() local
450 handler = php_output_handler_create_user(output_handler, chunk_size, flags); in php_output_start_user()
452handler = php_output_handler_create_internal(ZEND_STRL(php_output_default_handler_name), php_outpu… in php_output_start_user()
454 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_user()
457 php_output_handler_free(&handler); in php_output_start_user()
466 php_output_handler *handler; in php_output_start_internal() local
468handler = php_output_handler_create_internal(name, name_len, php_output_handler_compat_func, chunk… in php_output_start_internal()
469 php_output_handler_set_context(handler, output_handler, NULL); in php_output_start_internal()
470 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_internal()
473 php_output_handler_free(&handler); in php_output_start_internal()
484 php_output_handler *handler = NULL; in php_output_handler_create_user() local
490handler = php_output_handler_create_internal(ZEND_STRL(php_output_default_handler_name), php_outpu… in php_output_handler_create_user()
494 handler = alias(Z_STRVAL_P(output_handler), Z_STRLEN_P(output_handler), chunk_size, flags); in php_output_handler_create_user()
501handler = php_output_handler_init(handler_name, chunk_size, (flags & ~0xf) | PHP_OUTPUT_HANDLER_US… in php_output_handler_create_user()
503 handler->func.user = user; in php_output_handler_create_user()
516 return handler; in php_output_handler_create_user()
524 php_output_handler *handler; in php_output_handler_create_internal() local
527 handler = php_output_handler_init(str, chunk_size, (flags & ~0xf) | PHP_OUTPUT_HANDLER_INTERNAL); in php_output_handler_create_internal()
528 handler->func.internal = output_handler; in php_output_handler_create_internal()
531 return handler; in php_output_handler_create_internal()
537 PHPAPI void php_output_handler_set_context(php_output_handler *handler, void *opaq, void (*dtor)(vo… in php_output_handler_set_context() argument
539 if (handler->dtor && handler->opaq) { in php_output_handler_set_context()
540 handler->dtor(handler->opaq); in php_output_handler_set_context()
542 handler->dtor = dtor; in php_output_handler_set_context()
543 handler->opaq = opaq; in php_output_handler_set_context()
549 PHPAPI int php_output_handler_start(php_output_handler *handler) in php_output_handler_start() argument
554 if (php_output_lock_error(PHP_OUTPUT_HANDLER_START) || !handler) { in php_output_handler_start()
557 if (NULL != (conflict = zend_hash_find_ptr(&php_output_handler_conflicts, handler->name))) { in php_output_handler_start()
558 if (SUCCESS != conflict(ZSTR_VAL(handler->name), ZSTR_LEN(handler->name))) { in php_output_handler_start()
562 …if (NULL != (rconflicts = zend_hash_find_ptr(&php_output_handler_reverse_conflicts, handler->name)… in php_output_handler_start()
564 if (SUCCESS != conflict(ZSTR_VAL(handler->name), ZSTR_LEN(handler->name))) { in php_output_handler_start()
570 handler->level = zend_stack_push(&OG(handlers), &handler); in php_output_handler_start()
571 OG(active) = handler; in php_output_handler_start()
715 PHPAPI void php_output_handler_dtor(php_output_handler *handler) in php_output_handler_dtor() argument
717 if (handler->name) { in php_output_handler_dtor()
718 zend_string_release_ex(handler->name, 0); in php_output_handler_dtor()
720 if (handler->buffer.data) { in php_output_handler_dtor()
721 efree(handler->buffer.data); in php_output_handler_dtor()
723 if (handler->flags & PHP_OUTPUT_HANDLER_USER) { in php_output_handler_dtor()
724 zval_ptr_dtor(&handler->func.user->zoh); in php_output_handler_dtor()
725 efree(handler->func.user); in php_output_handler_dtor()
727 if (handler->dtor && handler->opaq) { in php_output_handler_dtor()
728 handler->dtor(handler->opaq); in php_output_handler_dtor()
730 memset(handler, 0, sizeof(*handler)); in php_output_handler_dtor()
875 php_output_handler *handler; in php_output_handler_init() local
877 handler = ecalloc(1, sizeof(php_output_handler)); in php_output_handler_init()
878 handler->name = zend_string_copy(name); in php_output_handler_init()
879 handler->size = chunk_size; in php_output_handler_init()
880 handler->flags = flags; in php_output_handler_init()
881 handler->buffer.size = PHP_OUTPUT_HANDLER_INITBUF_SIZE(chunk_size); in php_output_handler_init()
882 handler->buffer.data = emalloc(handler->buffer.size); in php_output_handler_init()
884 return handler; in php_output_handler_init()
890 static inline int php_output_handler_append(php_output_handler *handler, const php_output_buffer *b… in php_output_handler_append() argument
895 if ((handler->buffer.size - handler->buffer.used) <= buf->used) { in php_output_handler_append()
896 size_t grow_int = PHP_OUTPUT_HANDLER_INITBUF_SIZE(handler->size); in php_output_handler_append()
897 …size_t grow_buf = PHP_OUTPUT_HANDLER_INITBUF_SIZE(buf->used - (handler->buffer.size - handler->buf… in php_output_handler_append()
900 handler->buffer.data = safe_erealloc(handler->buffer.data, 1, handler->buffer.size, grow_max); in php_output_handler_append()
901 handler->buffer.size += grow_max; in php_output_handler_append()
903 memcpy(handler->buffer.data + handler->buffer.used, buf->data, buf->used); in php_output_handler_append()
904 handler->buffer.used += buf->used; in php_output_handler_append()
907 if (handler->size && (handler->buffer.used >= handler->size)) { in php_output_handler_append()
918 static inline php_output_handler_status_t php_output_handler_op(php_output_handler *handler, php_ou… in php_output_handler_op() argument
934 handler, in php_output_handler_op()
935 handler->name, in php_output_handler_op()
936 handler->flags, in php_output_handler_op()
937 handler->buffer.used?handler->buffer.data:"", in php_output_handler_op()
938 handler->buffer.used, in php_output_handler_op()
939 handler->buffer.size, in php_output_handler_op()
951 if (php_output_handler_append(handler, &context->in) && !context->op) { in php_output_handler_op()
956 if (!(handler->flags & PHP_OUTPUT_HANDLER_STARTED)) { in php_output_handler_op()
960 OG(running) = handler; in php_output_handler_op()
961 if (handler->flags & PHP_OUTPUT_HANDLER_USER) { in php_output_handler_op()
964 ZVAL_STRINGL(&ob_data, handler->buffer.data, handler->buffer.used); in php_output_handler_op()
966 zend_fcall_info_argn(&handler->func.user->fci, 2, &ob_data, &ob_mode); in php_output_handler_op()
970 …if (SUCCESS == zend_fcall_info_call(&handler->func.user->fci, &handler->func.user->fcc, &retval, N… in php_output_handler_op()
987 zend_fcall_info_argn(&handler->func.user->fci, 0); in php_output_handler_op()
992 …php_output_context_feed(context, handler->buffer.data, handler->buffer.size, handler->buffer.used,… in php_output_handler_op()
994 if (SUCCESS == handler->func.internal(&handler->opaq, context)) { in php_output_handler_op()
1004 handler->flags |= PHP_OUTPUT_HANDLER_STARTED; in php_output_handler_op()
1011 handler->flags |= PHP_OUTPUT_HANDLER_DISABLED; in php_output_handler_op()
1017 context->out.data = handler->buffer.data; in php_output_handler_op()
1018 context->out.used = handler->buffer.used; in php_output_handler_op()
1020 handler->buffer.data = NULL; in php_output_handler_op()
1021 handler->buffer.used = 0; in php_output_handler_op()
1022 handler->buffer.size = 0; in php_output_handler_op()
1030 handler->buffer.used = 0; in php_output_handler_op()
1031 handler->flags |= PHP_OUTPUT_HANDLER_PROCESSED; in php_output_handler_op()
1102 php_output_handler *handler = *(php_output_handler **) h; in php_output_stack_apply_op() local
1105 if ((was_disabled = (handler->flags & PHP_OUTPUT_HANDLER_DISABLED))) { in php_output_stack_apply_op()
1108 status = php_output_handler_op(handler, context); in php_output_stack_apply_op()
1121 if (handler->level) { in php_output_stack_apply_op()
1130 if (!handler->level) { in php_output_stack_apply_op()
1135 if (handler->level) { in php_output_stack_apply_op()
1148 php_output_handler *handler = *(php_output_handler **) h; in php_output_stack_apply_clean() local
1151 handler->buffer.used = 0; in php_output_stack_apply_clean()
1152 php_output_handler_op(handler, context); in php_output_stack_apply_clean()
1162 php_output_handler *handler = *(php_output_handler **) h; in php_output_stack_apply_list() local
1165 add_next_index_str(array, zend_string_copy(handler->name)); in php_output_stack_apply_list()
1174 php_output_handler *handler = *(php_output_handler **) h; in php_output_stack_apply_status() local
1177 add_next_index_zval(array, php_output_handler_status(handler, &arr)); in php_output_stack_apply_status()
1184 static inline zval *php_output_handler_status(php_output_handler *handler, zval *entry) in php_output_handler_status() argument
1189 add_assoc_str(entry, "name", zend_string_copy(handler->name)); in php_output_handler_status()
1190 add_assoc_long(entry, "type", (zend_long) (handler->flags & 0xf)); in php_output_handler_status()
1191 add_assoc_long(entry, "flags", (zend_long) handler->flags); in php_output_handler_status()
1192 add_assoc_long(entry, "level", (zend_long) handler->level); in php_output_handler_status()
1193 add_assoc_long(entry, "chunk_size", (zend_long) handler->size); in php_output_handler_status()
1194 add_assoc_long(entry, "buffer_size", (zend_long) handler->buffer.size); in php_output_handler_status()
1195 add_assoc_long(entry, "buffer_used", (zend_long) handler->buffer.used); in php_output_handler_status()