ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/calexpr.c
(Generate patch)

Comparing ray/src/common/calexpr.c (file contents):
Revision 2.37 by greg, Mon Mar 4 18:16:18 2019 UTC vs.
Revision 2.40 by greg, Fri Jun 19 22:33:45 2020 UTC

# Line 19 | Line 19 | static const char      RCSid[] = "$Id$";
19  
20   #include "copyright.h"
21  
22 #include  <stdio.h>
23 #include  <string.h>
22   #include  <ctype.h>
23   #include  <errno.h>
24   #include  <math.h>
# Line 105 | Line 103 | eval(                  /* evaluate an expression string */
103      char  *expr
104   )
105   {
106 +    int  prev_support = esupport;
107      EPNODE  *ep;
108      double  rval;
109  
110 +    esupport &= ~E_RCONST;      /* don't bother reducing constant expr */
111      ep = eparse(expr);
112 +    esupport = prev_support;    /* as you were */
113      rval = evalue(ep);
114      epfree(ep);
115      return(rval);
# Line 673 | Line 674 | getE3(void)                    /* E3 -> E4 ^ E3 */
674                          ep2 = newnode();
675                          ep2->type = NUM;
676                          ep2->v.num = 1;
677 +                } else if (ep3->type == NUM && ep3->v.num == 1) {
678 +                        efree((char *)ep3);     /* (E4 ^ 1) */
679 +                        ep1->sibling = NULL;
680 +                        efree((char *)ep2);
681 +                        ep2 = ep1;
682                  }
683          }
684          return(ep2);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines