Exemplo n.º 1
0
ZEND_API void zend_ptr_stack_push_from_memory(zend_ptr_stack *stack, int count, void **pointers)
{
	ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, count);

	memcpy(stack->top_element, pointers, count * sizeof(void *));
	stack->top_element += count;
	stack->top += count;
}
Exemplo n.º 2
0
ZEND_API void zend_ptr_stack_n_push(zend_ptr_stack *stack, int count, ...)
{
	va_list ptr;
	void *elem;
	
	ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, count)

	va_start(ptr, count);
	while (count>0) {
		elem = va_arg(ptr, void *);
		stack->top++;
		*(stack->top_element++) = elem;
		count--;
	}
	va_end(ptr);
}
php_http_message_parser_state_t php_http_message_parser_state_push(php_http_message_parser_t *parser, unsigned argc, ...)
{
	php_http_message_parser_state_t state = PHP_HTTP_MESSAGE_PARSER_STATE_FAILURE;
	va_list va_args;
	unsigned i;

	if (argc > 0) {
		/* short circuit */
		ZEND_PTR_STACK_RESIZE_IF_NEEDED((&parser->stack), argc);

		va_start(va_args, argc);
		for (i = 0; i < argc; ++i) {
			state  = va_arg(va_args, php_http_message_parser_state_t);
			zend_ptr_stack_push(&parser->stack, (void *) state);
		}
		va_end(va_args);
	}

	return state;
}