[BACK]Return to comp.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Diff for /OpenXM_contrib2/asir2000/parse/comp.c between version 1.5 and 1.6

version 1.5, 2001/06/04 02:49:48 version 1.6, 2003/05/14 06:20:11
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/parse/comp.c,v 1.4 2000/12/05 01:24:56 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/comp.c,v 1.5 2001/06/04 02:49:48 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 64  void call_usrf(FUNC f,...)
Line 64  void call_usrf(FUNC f,...)
         va_list ap;          va_list ap;
         int ac,i;          int ac,i;
         pointer *c;          pointer *c;
           VS prev_mpvs;
         NODE tn;          NODE tn;
   
         va_start(ap,f);          va_start(ap,f);
Line 71  void call_usrf(FUNC f,...)
Line 72  void call_usrf(FUNC f,...)
                 notdef(0,0,0,0);                  notdef(0,0,0,0);
         else {          else {
                 pushpvs(f);                  pushpvs(f);
                   if ( f->f.usrf->module ) {
                           prev_mpvs = MPVS;
                           MPVS = f->f.usrf->module->pvs;
                   }
                 ac = va_arg(ap,int);                  ac = va_arg(ap,int);
                 for ( i = 0, tn = f->f.usrf->args; i < ac;                  for ( i = 0, tn = f->f.usrf->args; i < ac;
                         i++, tn = NEXT(tn) )                          i++, tn = NEXT(tn) )
Line 78  void call_usrf(FUNC f,...)
Line 83  void call_usrf(FUNC f,...)
                 c = va_arg(ap,pointer *); *c = evalstat(BDY(f->f.usrf));                  c = va_arg(ap,pointer *); *c = evalstat(BDY(f->f.usrf));
                 va_end(ap);                  va_end(ap);
                 f_return = 0; poppvs();                  f_return = 0; poppvs();
                   if ( f->f.usrf->module )
                           MPVS = prev_mpvs;
         }          }
 }  }
 #else  #else
Line 88  va_dcl
Line 95  va_dcl
         int ac,i;          int ac,i;
         FUNC f;          FUNC f;
         pointer a,b,*c;          pointer a,b,*c;
           VS prev_mpvs;
         NODE tn;          NODE tn;
   
         va_start(ap); f = va_arg(ap,FUNC);          va_start(ap); f = va_arg(ap,FUNC);
Line 95  va_dcl
Line 103  va_dcl
                 notdef(0,0,0,0);                  notdef(0,0,0,0);
         else {          else {
                 pushpvs(f);                  pushpvs(f);
                   if ( f->f.usrf->module ) {
                           prev_mpvs = MPVS;
                           MPVS = f->f.usrf->module->pvs;
                   }
                 ac = va_arg(ap,int);                  ac = va_arg(ap,int);
                 for ( i = 0, tn = f->f.usrf->args; i < ac;                  for ( i = 0, tn = f->f.usrf->args; i < ac;
                         i++, tn = NEXT(tn) )                          i++, tn = NEXT(tn) )
                         ASSPV((int)FA0((FNODE)BDY(tn)),va_arg(ap,pointer));                          ASSPV((int)FA0((FNODE)BDY(tn)),va_arg(ap,pointer));
                 c = va_arg(ap,pointer *); *c = evalstat(BDY(f->f.usrf));                  c = va_arg(ap,pointer *); *c = evalstat(BDY(f->f.usrf));
                 f_return = 0; poppvs();                  f_return = 0; poppvs();
                   if ( f->f.usrf->module )
                           MPVS = prev_mpvs;
         }          }
 }  }
 #endif  #endif

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>