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()
401 php_output_handler *handler; in php_output_start_default() local
403handler = php_output_handler_create_internal(ZEND_STRL(php_output_default_handler_name), php_outpu… in php_output_start_default()
404 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_default()
407 php_output_handler_free(&handler); in php_output_start_default()
416 php_output_handler *handler; in php_output_start_devnull() local
418handler = php_output_handler_create_internal(ZEND_STRL(php_output_devnull_handler_name), php_outpu… in php_output_start_devnull()
419 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_devnull()
422 php_output_handler_free(&handler); in php_output_start_devnull()
431 php_output_handler *handler; in php_output_start_user() local
434 handler = php_output_handler_create_user(output_handler, chunk_size, flags); in php_output_start_user()
436handler = php_output_handler_create_internal(ZEND_STRL(php_output_default_handler_name), php_outpu… in php_output_start_user()
438 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_user()
441 php_output_handler_free(&handler); in php_output_start_user()
450 php_output_handler *handler; in php_output_start_internal() local
452handler = php_output_handler_create_internal(name, name_len, php_output_handler_compat_func, chunk… in php_output_start_internal()
453 php_output_handler_set_context(handler, output_handler, NULL); in php_output_start_internal()
454 if (SUCCESS == php_output_handler_start(handler)) { in php_output_start_internal()
457 php_output_handler_free(&handler); in php_output_start_internal()
468 php_output_handler *handler = NULL; in php_output_handler_create_user() local
474handler = php_output_handler_create_internal(ZEND_STRL(php_output_default_handler_name), php_outpu… in php_output_handler_create_user()
478 handler = alias(Z_STRVAL_P(output_handler), Z_STRLEN_P(output_handler), chunk_size, flags); in php_output_handler_create_user()
485handler = php_output_handler_init(handler_name, chunk_size, (flags & ~0xf) | PHP_OUTPUT_HANDLER_US… in php_output_handler_create_user()
487 handler->func.user = user; in php_output_handler_create_user()
500 return handler; in php_output_handler_create_user()
508 php_output_handler *handler; in php_output_handler_create_internal() local
511 handler = php_output_handler_init(str, chunk_size, (flags & ~0xf) | PHP_OUTPUT_HANDLER_INTERNAL); in php_output_handler_create_internal()
512 handler->func.internal = output_handler; in php_output_handler_create_internal()
515 return handler; in php_output_handler_create_internal()
521 PHPAPI void php_output_handler_set_context(php_output_handler *handler, void *opaq, void (*dtor)(vo… in php_output_handler_set_context() argument
523 if (handler->dtor && handler->opaq) { in php_output_handler_set_context()
524 handler->dtor(handler->opaq); in php_output_handler_set_context()
526 handler->dtor = dtor; in php_output_handler_set_context()
527 handler->opaq = opaq; in php_output_handler_set_context()
533 PHPAPI int php_output_handler_start(php_output_handler *handler) in php_output_handler_start() argument
538 if (php_output_lock_error(PHP_OUTPUT_HANDLER_START) || !handler) { in php_output_handler_start()
541 if (NULL != (conflict = zend_hash_find_ptr(&php_output_handler_conflicts, handler->name))) { in php_output_handler_start()
542 if (SUCCESS != conflict(ZSTR_VAL(handler->name), ZSTR_LEN(handler->name))) { in php_output_handler_start()
546 …if (NULL != (rconflicts = zend_hash_find_ptr(&php_output_handler_reverse_conflicts, handler->name)… in php_output_handler_start()
548 if (SUCCESS != conflict(ZSTR_VAL(handler->name), ZSTR_LEN(handler->name))) { in php_output_handler_start()
554 handler->level = zend_stack_push(&OG(handlers), &handler); in php_output_handler_start()
555 OG(active) = handler; in php_output_handler_start()
699 PHPAPI void php_output_handler_dtor(php_output_handler *handler) in php_output_handler_dtor() argument
701 if (handler->name) { in php_output_handler_dtor()
702 zend_string_release_ex(handler->name, 0); in php_output_handler_dtor()
704 if (handler->buffer.data) { in php_output_handler_dtor()
705 efree(handler->buffer.data); in php_output_handler_dtor()
707 if (handler->flags & PHP_OUTPUT_HANDLER_USER) { in php_output_handler_dtor()
708 zval_ptr_dtor(&handler->func.user->zoh); in php_output_handler_dtor()
709 efree(handler->func.user); in php_output_handler_dtor()
711 if (handler->dtor && handler->opaq) { in php_output_handler_dtor()
712 handler->dtor(handler->opaq); in php_output_handler_dtor()
714 memset(handler, 0, sizeof(*handler)); in php_output_handler_dtor()
859 php_output_handler *handler; in php_output_handler_init() local
861 handler = ecalloc(1, sizeof(php_output_handler)); in php_output_handler_init()
862 handler->name = zend_string_copy(name); in php_output_handler_init()
863 handler->size = chunk_size; in php_output_handler_init()
864 handler->flags = flags; in php_output_handler_init()
865 handler->buffer.size = PHP_OUTPUT_HANDLER_INITBUF_SIZE(chunk_size); in php_output_handler_init()
866 handler->buffer.data = emalloc(handler->buffer.size); in php_output_handler_init()
868 return handler; in php_output_handler_init()
874 static inline int php_output_handler_append(php_output_handler *handler, const php_output_buffer *b… in php_output_handler_append() argument
879 if ((handler->buffer.size - handler->buffer.used) <= buf->used) { in php_output_handler_append()
880 size_t grow_int = PHP_OUTPUT_HANDLER_INITBUF_SIZE(handler->size); in php_output_handler_append()
881 …size_t grow_buf = PHP_OUTPUT_HANDLER_INITBUF_SIZE(buf->used - (handler->buffer.size - handler->buf… in php_output_handler_append()
884 handler->buffer.data = safe_erealloc(handler->buffer.data, 1, handler->buffer.size, grow_max); in php_output_handler_append()
885 handler->buffer.size += grow_max; in php_output_handler_append()
887 memcpy(handler->buffer.data + handler->buffer.used, buf->data, buf->used); in php_output_handler_append()
888 handler->buffer.used += buf->used; in php_output_handler_append()
891 if (handler->size && (handler->buffer.used >= handler->size)) { in php_output_handler_append()
902 static inline php_output_handler_status_t php_output_handler_op(php_output_handler *handler, php_ou… in php_output_handler_op() argument
918 handler, in php_output_handler_op()
919 handler->name, in php_output_handler_op()
920 handler->flags, in php_output_handler_op()
921 handler->buffer.used?handler->buffer.data:"", in php_output_handler_op()
922 handler->buffer.used, in php_output_handler_op()
923 handler->buffer.size, in php_output_handler_op()
935 if (php_output_handler_append(handler, &context->in) && !context->op) { in php_output_handler_op()
940 if (!(handler->flags & PHP_OUTPUT_HANDLER_STARTED)) { in php_output_handler_op()
944 OG(running) = handler; in php_output_handler_op()
945 if (handler->flags & PHP_OUTPUT_HANDLER_USER) { in php_output_handler_op()
950 ZVAL_STRINGL(&ob_args[0], handler->buffer.data, handler->buffer.used); in php_output_handler_op()
955 handler->func.user->fci.param_count = 2; in php_output_handler_op()
956 handler->func.user->fci.params = ob_args; in php_output_handler_op()
957 handler->func.user->fci.retval = &retval; in php_output_handler_op()
960 …if (SUCCESS == zend_call_function(&handler->func.user->fci, &handler->func.user->fcc) && PHP_OUTPU… 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()