Lines Matching refs:handler

57 static inline php_output_handler_status_t php_output_handler_op(php_output_handler *handler, php_ou…
58 static inline int php_output_handler_append(php_output_handler *handler, const php_output_buffer *b…
59 static inline zval *php_output_handler_status(php_output_handler *handler, zval *entry);
177 php_output_handler **handler = NULL; in php_output_deactivate() local
188 while ((handler = zend_stack_top(&OG(handlers)))) { in php_output_deactivate()
189 php_output_handler_free(handler); in php_output_deactivate()
410 php_output_handler *handler; in php_output_start_default() local
412handler = php_output_handler_create_internal(ZEND_STRL(php_output_default_handler_name), php_outpu… in php_output_start_default()
413 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_default()
416 php_output_handler_free(&handler); in php_output_start_default()
425 php_output_handler *handler; in php_output_start_devnull() local
427handler = php_output_handler_create_internal(ZEND_STRL(php_output_devnull_handler_name), php_outpu… in php_output_start_devnull()
428 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_devnull()
431 php_output_handler_free(&handler); in php_output_start_devnull()
440 php_output_handler *handler; in php_output_start_user() local
443 handler = php_output_handler_create_user(output_handler, chunk_size, flags); in php_output_start_user()
445handler = php_output_handler_create_internal(ZEND_STRL(php_output_default_handler_name), php_outpu… in php_output_start_user()
447 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_user()
450 php_output_handler_free(&handler); in php_output_start_user()
459 php_output_handler *handler; in php_output_start_internal() local
461handler = php_output_handler_create_internal(name, name_len, php_output_handler_compat_func, chunk… in php_output_start_internal()
462 php_output_handler_set_context(handler, output_handler, NULL); in php_output_start_internal()
463 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_internal()
466 php_output_handler_free(&handler); in php_output_start_internal()
477 php_output_handler *handler = NULL; in php_output_handler_create_user() local
483handler = php_output_handler_create_internal(ZEND_STRL(php_output_default_handler_name), php_outpu… in php_output_handler_create_user()
487 handler = alias(Z_STRVAL_P(output_handler), Z_STRLEN_P(output_handler), chunk_size, flags); in php_output_handler_create_user()
493handler = php_output_handler_init(handler_name, chunk_size, (flags & ~0xf) | PHP_OUTPUT_HANDLER_US… in php_output_handler_create_user()
495 handler->func.user = user; in php_output_handler_create_user()
508 return handler; in php_output_handler_create_user()
516 php_output_handler *handler; in php_output_handler_create_internal() local
519 handler = php_output_handler_init(str, chunk_size, (flags & ~0xf) | PHP_OUTPUT_HANDLER_INTERNAL); in php_output_handler_create_internal()
520 handler->func.internal = output_handler; in php_output_handler_create_internal()
523 return handler; in php_output_handler_create_internal()
529 PHPAPI void php_output_handler_set_context(php_output_handler *handler, void *opaq, void (*dtor)(vo… in php_output_handler_set_context() argument
531 if (handler->dtor && handler->opaq) { in php_output_handler_set_context()
532 handler->dtor(handler->opaq); in php_output_handler_set_context()
534 handler->dtor = dtor; in php_output_handler_set_context()
535 handler->opaq = opaq; in php_output_handler_set_context()
541 PHPAPI int php_output_handler_start(php_output_handler *handler) in php_output_handler_start() argument
546 if (php_output_lock_error(PHP_OUTPUT_HANDLER_START) || !handler) { in php_output_handler_start()
549 if (NULL != (conflict = zend_hash_find_ptr(&php_output_handler_conflicts, handler->name))) { in php_output_handler_start()
550 if (SUCCESS != conflict(ZSTR_VAL(handler->name), ZSTR_LEN(handler->name))) { in php_output_handler_start()
554 …if (NULL != (rconflicts = zend_hash_find_ptr(&php_output_handler_reverse_conflicts, handler->name)… in php_output_handler_start()
556 if (SUCCESS != conflict(ZSTR_VAL(handler->name), ZSTR_LEN(handler->name))) { in php_output_handler_start()
562 handler->level = zend_stack_push(&OG(handlers), &handler); in php_output_handler_start()
563 OG(active) = handler; in php_output_handler_start()
707 PHPAPI void php_output_handler_dtor(php_output_handler *handler) in php_output_handler_dtor() argument
709 if (handler->name) { in php_output_handler_dtor()
710 zend_string_release_ex(handler->name, 0); in php_output_handler_dtor()
712 if (handler->buffer.data) { in php_output_handler_dtor()
713 efree(handler->buffer.data); in php_output_handler_dtor()
715 if (handler->flags & PHP_OUTPUT_HANDLER_USER) { in php_output_handler_dtor()
716 zval_ptr_dtor(&handler->func.user->zoh); in php_output_handler_dtor()
717 efree(handler->func.user); in php_output_handler_dtor()
719 if (handler->dtor && handler->opaq) { in php_output_handler_dtor()
720 handler->dtor(handler->opaq); in php_output_handler_dtor()
722 memset(handler, 0, sizeof(*handler)); in php_output_handler_dtor()
867 php_output_handler *handler; in php_output_handler_init() local
869 handler = ecalloc(1, sizeof(php_output_handler)); in php_output_handler_init()
870 handler->name = zend_string_copy(name); in php_output_handler_init()
871 handler->size = chunk_size; in php_output_handler_init()
872 handler->flags = flags; in php_output_handler_init()
873 handler->buffer.size = PHP_OUTPUT_HANDLER_INITBUF_SIZE(chunk_size); in php_output_handler_init()
874 handler->buffer.data = emalloc(handler->buffer.size); in php_output_handler_init()
876 return handler; in php_output_handler_init()
882 static inline int php_output_handler_append(php_output_handler *handler, const php_output_buffer *b… in php_output_handler_append() argument
887 if ((handler->buffer.size - handler->buffer.used) <= buf->used) { in php_output_handler_append()
888 size_t grow_int = PHP_OUTPUT_HANDLER_INITBUF_SIZE(handler->size); in php_output_handler_append()
889 …size_t grow_buf = PHP_OUTPUT_HANDLER_INITBUF_SIZE(buf->used - (handler->buffer.size - handler->buf… in php_output_handler_append()
892 handler->buffer.data = safe_erealloc(handler->buffer.data, 1, handler->buffer.size, grow_max); in php_output_handler_append()
893 handler->buffer.size += grow_max; in php_output_handler_append()
895 memcpy(handler->buffer.data + handler->buffer.used, buf->data, buf->used); in php_output_handler_append()
896 handler->buffer.used += buf->used; in php_output_handler_append()
899 if (handler->size && (handler->buffer.used >= handler->size)) { in php_output_handler_append()
910 static inline php_output_handler_status_t php_output_handler_op(php_output_handler *handler, php_ou… in php_output_handler_op() argument
926 handler, in php_output_handler_op()
927 handler->name, in php_output_handler_op()
928 handler->flags, in php_output_handler_op()
929 handler->buffer.used?handler->buffer.data:"", in php_output_handler_op()
930 handler->buffer.used, in php_output_handler_op()
931 handler->buffer.size, in php_output_handler_op()
943 if (php_output_handler_append(handler, &context->in) && !context->op) { in php_output_handler_op()
948 if (!(handler->flags & PHP_OUTPUT_HANDLER_STARTED)) { in php_output_handler_op()
952 OG(running) = handler; in php_output_handler_op()
953 if (handler->flags & PHP_OUTPUT_HANDLER_USER) { in php_output_handler_op()
956 ZVAL_STRINGL(&ob_data, handler->buffer.data, handler->buffer.used); in php_output_handler_op()
958 zend_fcall_info_argn(&handler->func.user->fci, 2, &ob_data, &ob_mode); in php_output_handler_op()
962 …if (SUCCESS == zend_fcall_info_call(&handler->func.user->fci, &handler->func.user->fcc, &retval, N… in php_output_handler_op()
979 zend_fcall_info_argn(&handler->func.user->fci, 0); in php_output_handler_op()
984 …php_output_context_feed(context, handler->buffer.data, handler->buffer.size, handler->buffer.used,… in php_output_handler_op()
986 if (SUCCESS == handler->func.internal(&handler->opaq, context)) { in php_output_handler_op()
996 handler->flags |= PHP_OUTPUT_HANDLER_STARTED; in php_output_handler_op()
1003 handler->flags |= PHP_OUTPUT_HANDLER_DISABLED; in php_output_handler_op()
1009 context->out.data = handler->buffer.data; in php_output_handler_op()
1010 context->out.used = handler->buffer.used; in php_output_handler_op()
1012 handler->buffer.data = NULL; in php_output_handler_op()
1013 handler->buffer.used = 0; in php_output_handler_op()
1014 handler->buffer.size = 0; in php_output_handler_op()
1022 handler->buffer.used = 0; in php_output_handler_op()
1023 handler->flags |= PHP_OUTPUT_HANDLER_PROCESSED; in php_output_handler_op()
1094 php_output_handler *handler = *(php_output_handler **) h; in php_output_stack_apply_op() local
1097 if ((was_disabled = (handler->flags & PHP_OUTPUT_HANDLER_DISABLED))) { in php_output_stack_apply_op()
1100 status = php_output_handler_op(handler, context); in php_output_stack_apply_op()
1113 if (handler->level) { in php_output_stack_apply_op()
1122 if (!handler->level) { in php_output_stack_apply_op()
1127 if (handler->level) { in php_output_stack_apply_op()
1140 php_output_handler *handler = *(php_output_handler **) h; in php_output_stack_apply_clean() local
1143 handler->buffer.used = 0; in php_output_stack_apply_clean()
1144 php_output_handler_op(handler, context); in php_output_stack_apply_clean()
1154 php_output_handler *handler = *(php_output_handler **) h; in php_output_stack_apply_list() local
1157 add_next_index_str(array, zend_string_copy(handler->name)); in php_output_stack_apply_list()
1166 php_output_handler *handler = *(php_output_handler **) h; in php_output_stack_apply_status() local
1169 add_next_index_zval(array, php_output_handler_status(handler, &arr)); in php_output_stack_apply_status()
1176 static inline zval *php_output_handler_status(php_output_handler *handler, zval *entry) in php_output_handler_status() argument
1181 add_assoc_str(entry, "name", zend_string_copy(handler->name)); in php_output_handler_status()
1182 add_assoc_long(entry, "type", (zend_long) (handler->flags & 0xf)); in php_output_handler_status()
1183 add_assoc_long(entry, "flags", (zend_long) handler->flags); in php_output_handler_status()
1184 add_assoc_long(entry, "level", (zend_long) handler->level); in php_output_handler_status()
1185 add_assoc_long(entry, "chunk_size", (zend_long) handler->size); in php_output_handler_status()
1186 add_assoc_long(entry, "buffer_size", (zend_long) handler->buffer.size); in php_output_handler_status()
1187 add_assoc_long(entry, "buffer_used", (zend_long) handler->buffer.used); in php_output_handler_status()