Improved parameter handling

This commit is contained in:
Ilia Alshanetsky 2009-01-05 16:24:14 +00:00
parent cc42ff9fa2
commit 9220a5eda2
4 changed files with 12 additions and 16 deletions

View file

@ -180,18 +180,17 @@ PHP_FUNCTION(apache_child_terminate)
Get and set Apache request notes */ Get and set Apache request notes */
PHP_FUNCTION(apache_note) PHP_FUNCTION(apache_note)
{ {
char *note_name, *note_val; char *note_name, *note_val = NULL;
int note_name_len, note_val_len; int note_name_len, note_val_len;
char *old_val; char *old_val;
int arg_count = ZEND_NUM_ARGS();
if (zend_parse_parameters(arg_count TSRMLS_CC, "s|s", &note_name, &note_name_len, &note_val, &note_val_len) == FAILURE) { if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &note_name, &note_name_len, &note_val, &note_val_len) == FAILURE) {
return; return;
} }
old_val = (char *) table_get(((request_rec *)SG(server_context))->notes, note_name); old_val = (char *) table_get(((request_rec *)SG(server_context))->notes, note_name);
if (arg_count == 2) { if (note_val) {
table_set(((request_rec *)SG(server_context))->notes, note_name, note_val); table_set(((request_rec *)SG(server_context))->notes, note_name, note_val);
} }

View file

@ -193,12 +193,11 @@ PHP_FUNCTION(apache_response_headers)
PHP_FUNCTION(apache_note) PHP_FUNCTION(apache_note)
{ {
php_struct *ctx; php_struct *ctx;
char *note_name, *note_val; char *note_name, *note_val = NULL;
int note_name_len, note_val_len; int note_name_len, note_val_len;
char *old_note_val=NULL; char *old_note_val=NULL;
int arg_count = ZEND_NUM_ARGS();
if (zend_parse_parameters(arg_count TSRMLS_CC, "s|s", &note_name, &note_name_len, &note_val, &note_val_len) == FAILURE) { if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &note_name, &note_name_len, &note_val, &note_val_len) == FAILURE) {
return; return;
} }
@ -206,7 +205,7 @@ PHP_FUNCTION(apache_note)
old_note_val = (char *) apr_table_get(ctx->r->notes, note_name); old_note_val = (char *) apr_table_get(ctx->r->notes, note_name);
if (arg_count == 2) { if (note_val) {
apr_table_set(ctx->r->notes, note_name, note_val); apr_table_set(ctx->r->notes, note_name, note_val);
} }

View file

@ -221,12 +221,11 @@ PHP_FUNCTION(apache_response_headers)
PHP_FUNCTION(apache_note) PHP_FUNCTION(apache_note)
{ {
php_struct *ctx; php_struct *ctx;
char *note_name, *note_val; char *note_name, *note_val = NULL;
int note_name_len, note_val_len; int note_name_len, note_val_len;
char *old_note_val=NULL; char *old_note_val=NULL;
int arg_count = ZEND_NUM_ARGS();
if (zend_parse_parameters(arg_count TSRMLS_CC, "s|s", &note_name, &note_name_len, &note_val, &note_val_len) == FAILURE) { if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &note_name, &note_name_len, &note_val, &note_val_len) == FAILURE) {
return; return;
} }
@ -234,7 +233,7 @@ PHP_FUNCTION(apache_note)
old_note_val = (char *) apr_table_get(ctx->r->notes, note_name); old_note_val = (char *) apr_table_get(ctx->r->notes, note_name);
if (arg_count == 2) { if (note_val) {
apr_table_set(ctx->r->notes, note_name, note_val); apr_table_set(ctx->r->notes, note_name, note_val);
} }

View file

@ -1551,18 +1551,17 @@ PHP_FUNCTION(apache_child_terminate)
Get and set Apache request notes */ Get and set Apache request notes */
PHP_FUNCTION(apache_note) PHP_FUNCTION(apache_note)
{ {
char *arg_name, *arg_val; char *arg_name, *arg_val = NULL;
int arg_name_len, arg_val_len; int arg_name_len, arg_val_len;
char *note_val; char *note_val;
int arg_count = ZEND_NUM_ARGS();
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &arg_name, &arg_name_len, &arg_val, &arg_val_len) == FAILURE) { if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", &arg_name, &arg_name_len, &arg_val, &arg_val_len) == FAILURE) {
return; return;
} }
note_val = (char *) table_get(((request_rec *)SG(server_context))->notes, arg_name); note_val = (char *) table_get(((request_rec *)SG(server_context))->notes, arg_name);
if (arg_count == 2) { if (arg_val) {
table_set(((request_rec *)SG(server_context))->notes, arg_name, arg_val); table_set(((request_rec *)SG(server_context))->notes, arg_name, arg_val);
} }