summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLogan Chien <loganchien@google.com>2018-02-14 13:24:21 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-02-14 13:24:21 +0000
commitc5a33e4fdc55b63d4aa33aecefcc91b63da921e7 (patch)
treec95ce33e782f0a1ca5b589b9656b893a987a7f71
parent01389fff4c5f877bb0d96bd567fd9452c2d34bf0 (diff)
parent6fbadb666c32920cf36e646f3c00aab1ad49cdf6 (diff)
downloadsvox-c5a33e4fdc55b63d4aa33aecefcc91b63da921e7.tar.gz
-rw-r--r--pico/lib/picokpr.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/pico/lib/picokpr.c b/pico/lib/picokpr.c
index 956ae39..01d3b0d 100644
--- a/pico/lib/picokpr.c
+++ b/pico/lib/picokpr.c
@@ -162,7 +162,7 @@ typedef struct kpr_subobj
static picoos_uint32 kpr_getUInt32(picoos_uint8 * p)
{
- return p[0] + 256*p[1] + 256*256*p[2] + 256*256*256*p[3];
+ return (p[0]) | (p[1] << 8) | (p[2] << 16) | (p[3] << 24);
}
@@ -342,10 +342,7 @@ extern picokpr_LexCat picokpr_getLexCat(picokpr_Preproc preproc, picokpr_LexCatA
extern picoos_int32 picokpr_getAttrValArrInt32(picokpr_Preproc preproc, picokpr_AttrValArrOffset ofs)
{
picoos_uint8 * p = (picoos_uint8 *)&(((kpr_SubObj)preproc)->rAttrValArr[ofs]);
- picoos_uint32 c = p[KPR_ATTRVAL_INT_OFS] +
- 256*p[KPR_ATTRVAL_INT_OFS+1] +
- 256*256*p[KPR_ATTRVAL_INT_OFS+2] +
- 256*256*256*p[KPR_ATTRVAL_INT_OFS+3];
+ picoos_uint32 c = kpr_getUInt32(&p[KPR_ATTRVAL_INT_OFS]);
if (c > KPR_MAX_INT32) {
return (c - KPR_MAX_INT32) - 1;
@@ -399,10 +396,7 @@ extern picokpr_VarStrPtr picokpr_getOutItemStr(picokpr_Preproc preproc, picokpr_
extern picoos_int32 picokpr_getOutItemVal(picokpr_Preproc preproc, picokpr_OutItemArrOffset ofs)
{
picoos_uint8 * p = (picoos_uint8 *)&(((kpr_SubObj)preproc)->rOutItemArr[ofs]);
- picoos_uint32 c = p[KPR_OUTITEM_VAL_OFS+0] +
- 256*p[KPR_OUTITEM_VAL_OFS+1] +
- 256*256*p[KPR_OUTITEM_VAL_OFS+2] +
- 256*256*256*p[KPR_OUTITEM_VAL_OFS+3];
+ picoos_uint32 c = kpr_getUInt32(&p[KPR_OUTITEM_VAL_OFS]);
if (c > KPR_MAX_INT32) {
return (c - KPR_MAX_INT32) - 1;
@@ -552,11 +546,7 @@ extern picoos_int32 picokpr_getProdArrLen(picokpr_Preproc preproc)
extern picoos_int32 picokpr_getProdPrefCost(picokpr_Preproc preproc, picokpr_ProdArrOffset ofs)
{
picoos_uint8 * p = (picoos_uint8 *)&(((kpr_SubObj)preproc)->rProdArr[ofs]);
- picoos_uint32 c = p[KPR_PROD_PRODPREFCOST_OFS+0] +
- 256*p[KPR_PROD_PRODPREFCOST_OFS+1] +
- 256*256*p[KPR_PROD_PRODPREFCOST_OFS+2] +
- 256*256*256*p[KPR_PROD_PRODPREFCOST_OFS+3];
-
+ picoos_uint32 c = kpr_getUInt32(&p[KPR_PROD_PRODPREFCOST_OFS]);
if (c > KPR_MAX_INT32) {
return (c - KPR_MAX_INT32) - 1;