From 94cbdc2862ad9e6255dda2d5fc1c9627e70bf14d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Sat, 23 May 1998 14:42:06 +0200 Subject: [PATCH] Fixed minor typo. Now pops stack _after_ calling YPERROR() to avoid confusing stack frames in backtrace. Rev: src/modules/Yp/yp.c:1.11 --- src/modules/Yp/yp.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/modules/Yp/yp.c b/src/modules/Yp/yp.c index 0f98635087..fc7659c679 100644 --- a/src/modules/Yp/yp.c +++ b/src/modules/Yp/yp.c @@ -42,9 +42,12 @@ static void f_default_yp_domain(INT32 args) { int err; char *ret; - pop_n_elems( args ); + err = yp_get_default_domain(&ret); - YPERROR( "dafult_yp_domain", err ); + + YPERROR( "defult_yp_domain", err ); + + pop_n_elems( args ); push_text( ret ); } @@ -52,9 +55,12 @@ static void f_server(INT32 args) { int err; char *ret; + err = yp_master(this->domain, sp[-1].u.string->str, &ret); - pop_n_elems( args ); + YPERROR( "server", err ); + + pop_n_elems( args ); push_text( ret ); } @@ -75,7 +81,10 @@ static void f_create(INT32 args) } this->domain = strdup( sp[-args].u.string->str ); err = yp_bind( this->domain ); + YPERROR("create", err); + + pop_n_elems(args); } static void f_all(INT32 args) @@ -85,6 +94,7 @@ static void f_all(INT32 args) int retlen, retkeylen; char *map; struct mapping *res_map; + check_all_args("yp->all", args, BIT_STRING, 0); map = sp[-1].u.string->str; @@ -102,13 +112,13 @@ static void f_all(INT32 args) num++; } while(!err); - pop_n_elems(args); if(err != YPERR_NOMORE) { free_mapping( res_map ); YPERROR( "all", err ); } this->last_size = num; + pop_n_elems(args); push_mapping( res_map ); } @@ -135,9 +145,9 @@ void f_map(INT32 args) &retkey, &retkeylen, &retval, &retlen); } while(!err); - pop_n_elems(args); if(err != YPERR_NOMORE) - YPERROR( "all", err ); + YPERROR( "map", err ); + pop_n_elems(args); } static void f_order(INT32 args) @@ -147,7 +157,9 @@ static void f_order(INT32 args) check_all_args("yp->order", args, BIT_STRING, 0); err = yp_order( this->domain, sp[-args].u.string->str, &ret); + YPERROR("order", err ); + pop_n_elems( args ); push_int( (INT32) ret ); } @@ -164,15 +176,17 @@ static void f_match(INT32 args) sp[-args+1].u.string->str, sp[-args+1].u.string->len, &retval, &retlen ); - pop_n_elems( args ); if(err == YPERR_KEY) { + pop_n_elems( args ); push_int(0); sp[-1].subtype = NUMBER_UNDEFINED; return; } YPERROR( "match", err ); + + pop_n_elems( args ); push_string(make_shared_binary_string( retval, retlen )); } -- GitLab