From: Sterling Hughes Date: Sun, 3 Sep 2000 19:58:12 +0000 (+0000) Subject: If the user wants to use more than one handle reuse the old handle. X-Git-Tag: php-4.0.3RC1~333 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6a5ee2a5389be8c4062564854224ead025a903fc;p=php If the user wants to use more than one handle reuse the old handle. --- diff --git a/ext/sablot/php_sablot.h b/ext/sablot/php_sablot.h index 1baca7bfa2..f0ec2d4735 100644 --- a/ext/sablot/php_sablot.h +++ b/ext/sablot/php_sablot.h @@ -80,6 +80,7 @@ typedef struct { char *output_transform_file; int le_sablot; int last_errno; + int current_processor; } php_sablot_globals; diff --git a/ext/sablot/sablot.c b/ext/sablot/sablot.c index 0bde0bf6db..09848a13f9 100644 --- a/ext/sablot/sablot.c +++ b/ext/sablot/sablot.c @@ -370,6 +370,12 @@ PHP_FUNCTION(xslt_create) int ret; SABLOTLS_FETCH(); + if (SABLOTG(current_processor)) { + Z_TYPE_P(return_value) = IS_RESOURCE; + Z_LVAL_P(return_value) = SABLOTG(current_processor); + return; + } + ret = SablotCreateProcessor(&p); if (ret) { @@ -403,6 +409,7 @@ PHP_FUNCTION(xslt_create) ZEND_REGISTER_RESOURCE(return_value, handle, SABLOTG(le_sablot)); handle->index = Z_LVAL_P(return_value); + SABLOTG(current_processor) = Z_LVAL_P(return_value); } /* }}} */ @@ -1079,6 +1086,8 @@ static void _php_sablot_free_processor(php_sablot *handle) SablotUnregHandler(handle->p, HLR_SAX, NULL, NULL); SablotDestroyProcessor(handle->p); } + SABLOTG(current_processor) = 0; + FUNCH_FREE(handle->startDocHandler); FUNCH_FREE(handle->startElementHandler); FUNCH_FREE(handle->endElementHandler);