summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;