decNumber.c (decNumberPower): Constify.
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Sat, 16 Sep 2006 02:54:29 +0000 (02:54 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Sat, 16 Sep 2006 02:54:29 +0000 (02:54 +0000)
* decNumber.c (decNumberPower): Constify.
* decNumber.h (decNumberPower): Likewise.

From-SVN: r116990

libdecnumber/ChangeLog
libdecnumber/decNumber.c
libdecnumber/decNumber.h

index 3661c7c447fdfee70970891c1eda2fb18df45855..c5dea7f9f56885c11844dee5f99f06bd819bfeab 100644 (file)
@@ -1,3 +1,8 @@
+2006-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * decNumber.c (decNumberPower): Constify.
+       * decNumber.h (decNumberPower): Likewise.
+
 2006-09-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * configure.ac (ACX_PROG_CC_WARNING_OPTS): Add -Wcast-qual.
index a086327d72de6d09713dced9cda1a93b0082ad6a..039d19a459213a4cdd2a14e894d0c9e8ce7ba1bf 100644 (file)
@@ -964,13 +964,13 @@ decNumberNormalize (decNumber * res, const decNumber * rhs, decContext * set)
 /* Specification restriction: abs(n) must be <=999999999              */
 /* ------------------------------------------------------------------ */
 decNumber *
-decNumberPower (decNumber * res, decNumber * lhs,
-               decNumber * rhs, decContext * set)
+decNumberPower (decNumber * res, const decNumber * lhs,
+               const decNumber * rhs, decContext * set)
 {
   decNumber *alloclhs = NULL;  /* non-NULL if rounded lhs allocated */
   decNumber *allocrhs = NULL;  /* .., rhs */
   decNumber *allocdac = NULL;  /* -> allocated acc buffer, iff used */
-  decNumber *inrhs = rhs;      /* save original rhs */
+  const decNumber *inrhs = rhs;        /* save original rhs */
   Int reqdigits = set->digits; /* requested DIGITS */
   Int n;                       /* RHS in binary */
   Int i;                       /* work */
@@ -1117,6 +1117,7 @@ decNumberPower (decNumber * res, decNumber * lhs,
       /* we'll invert the lhs now rather than inverting the result later */
       if (decNumberIsNegative (rhs))
        {                       /* was a **-n [hence digits>0] */
+         decNumber * newlhs;
          decNumberCopy (&dnOne, dac);  /* dnOne=1;  [needed now or later] */
 #if DECSUBSET
          if (set->extended)
@@ -1138,13 +1139,14 @@ decNumberPower (decNumber * res, decNumber * lhs,
                      status |= DEC_Insufficient_storage;
                      break;
                    }
-                 lhs = alloclhs;       /* use the allocated space */
+                 newlhs = alloclhs;    /* use the allocated space */
                }
              else
-               lhs = (decNumber *) lhsbuff;    /* use stack storage */
+               newlhs = (decNumber *) lhsbuff; /* use stack storage */
              /* [lhs now points to buffer or allocated storage] */
-             decNumberCopy (lhs, dac); /* copy the 1/lhs */
+             decNumberCopy (newlhs, dac);      /* copy the 1/lhs */
              decNumberCopy (dac, &dnOne);      /* restore acc=1 */
+             lhs = newlhs;
 #if DECSUBSET
            }
 #endif
index a64a4d5baedbbbaef4f491d1161737934c2f9e99..2357fbeab37561b260e728a2191458b339beb649 100644 (file)
@@ -152,8 +152,8 @@ decNumber *decNumberMultiply (decNumber *, const decNumber *,
                              const decNumber *, decContext *);
 decNumber *decNumberNormalize (decNumber *, const decNumber *, decContext *);
 decNumber *decNumberPlus (decNumber *, const decNumber *, decContext *);
-decNumber *decNumberPower (decNumber *, decNumber *, decNumber *,
-                          decContext *);
+decNumber *decNumberPower (decNumber *, const decNumber *,
+                          const decNumber *, decContext *);
 decNumber *decNumberQuantize (decNumber *, const decNumber *,
                              const decNumber *, decContext *);
 decNumber *decNumberRemainder (decNumber *, const decNumber *,