diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-01-28 19:02:21 +0000 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-01-28 19:02:21 +0000 |
commit | f627f77f23d1497c9e1f4269b5c8812d12b42f18 (patch) | |
tree | 708772d83a8355e25155cf233d5a9e38f8ad4d96 /src/runtime/oref.r | |
parent | 6ab0c0f5bf14ed9c15370407b9ee7e0b4b089ae1 (diff) | |
download | icon-upstream.tar.gz |
Imported Upstream version 9.5.0upstream/9.5.0upstream
Diffstat (limited to 'src/runtime/oref.r')
-rw-r--r-- | src/runtime/oref.r | 111 |
1 files changed, 1 insertions, 110 deletions
diff --git a/src/runtime/oref.r b/src/runtime/oref.r index 3ac86bc..8e1ffea 100644 --- a/src/runtime/oref.r +++ b/src/runtime/oref.r @@ -38,35 +38,18 @@ operator{*} ! bang(underef x -> dx) return type(dx).lst_elem } inline { - -#ifdef EventMon - word xi = 0; - - EVValD(&dx, E_Lbang); -#endif /* EventMon */ - /* * x is a list. Chain through each list element block and for * each one, suspend with a variable pointing to each * element contained in the block. */ for (ep = BlkLoc(dx)->list.listhead; -#ifdef ListFix - BlkType(ep) == T_Lelem; -#else /* ListFix */ ep != NULL; -#endif /* ListFix */ ep = ep->lelem.listnext){ for (i = 0; i < ep->lelem.nused; i++) { j = ep->lelem.first + i; if (j >= ep->lelem.nslots) j -= ep->lelem.nslots; - -#ifdef EventMon - MakeInt(++xi, &eventdesc); - EVValD(&eventdesc, E_Lsub); -#endif /* EventMon */ - suspend struct_var(&ep->lelem.lslots[j], ep); } } @@ -158,17 +141,12 @@ operator{*} ! bang(underef x -> dx) inline { struct b_tvtbl *tp; - EVValD(&dx, E_Tbang); - /* * x is a table. Chain down the element list in each bucket * and suspend a variable pointing to each element in turn. */ for (ep = hgfirst(BlkLoc(dx), &state); ep != 0; ep = hgnext(BlkLoc(dx), &state, ep)) { - - EVValD(&ep->telem.tval, E_Tval); - Protect(tp = alctvtbl(&dx, &ep->telem.tref, ep->telem.hashnum), runerr(0)); suspend tvtbl(tp); } @@ -180,14 +158,12 @@ operator{*} ! bang(underef x -> dx) return store[type(dx).set_elem] } inline { - EVValD(&dx, E_Sbang); /* * This is similar to the method for tables except that a * value is returned instead of a variable. */ for (ep = hgfirst(BlkLoc(dx), &state); ep != 0; ep = hgnext(BlkLoc(dx), &state, ep)) { - EVValD(&ep->selem.setmem, E_Sval); suspend ep->selem.setmem; } } @@ -202,21 +178,8 @@ operator{*} ! bang(underef x -> dx) * x is a record. Loop through the fields and suspend * a variable pointing to each one. */ - -#ifdef EventMon - word xi = 0; - - EVValD(&dx, E_Rbang); -#endif /* EventMon */ - j = BlkLoc(dx)->record.recdesc->proc.nfields; for (i = 0; i < j; i++) { - -#ifdef EventMon - MakeInt(++xi, &eventdesc); - EVValD(&eventdesc, E_Rsub); -#endif /* EventMon */ - suspend struct_var(&BlkLoc(dx)->record.fields[i], (struct b_record *)BlkLoc(dx)); } @@ -256,12 +219,6 @@ end operator{0,1} ? random(underef x -> dx) -#ifndef LargeInts - declare { - C_integer v = 0; - } -#endif /* LargeInts */ - if is:variable(x) && is:string(dx) then { abstract { return new tvsubs(type(x)) @@ -347,13 +304,6 @@ operator{0,1} ? random(underef x -> dx) rval = RandVal; rval *= val; i = (word)rval + 1; - -#ifdef EventMon - EVValD(&dx, E_Lrand); - MakeInt(i, &eventdesc); - EVValD(&eventdesc, E_Lsub); -#endif /* EventMon */ - j = 1; /* * Work down chain list of list blocks and find the block that @@ -363,11 +313,7 @@ operator{0,1} ? random(underef x -> dx) while (i >= j + bp->lelem.nused) { j += bp->lelem.nused; bp = bp->lelem.listnext; -#ifdef ListFix - if (BlkType(bp) == T_List) -#else /* ListFix */ if (bp == NULL) -#endif /* ListFix */ syserr("list reference out of bounds in random"); } /* @@ -405,13 +351,6 @@ operator{0,1} ? random(underef x -> dx) rval *= val; n = (word)rval + 1; -#ifdef EventMon - EVValD(&dx, E_Trand); - MakeInt(n, &eventdesc); - EVValD(&eventdesc, E_Tsub); -#endif /* EventMon */ - - /* * Walk down the hash chains to find and return the nth element * as a variable. @@ -419,11 +358,7 @@ operator{0,1} ? random(underef x -> dx) for (i = 0; i < HSegs && (seg = bp->table.hdir[i]) != NULL; i++) for (j = segsize[i] - 1; j >= 0; j--) for (ep = seg->hslots[j]; -#ifdef TableFix - BlkType(ep) == T_Telem; -#else /* TableFix */ ep != NULL; -#endif /* TableFix */ ep = ep->telem.clink) if (--n <= 0) { Protect(tp = alctvtbl(&dx, &ep->telem.tref, ep->telem.hashnum), runerr(0)); @@ -456,11 +391,6 @@ operator{0,1} ? random(underef x -> dx) rval *= val; n = (word)rval + 1; -#ifdef EventMon - EVValD(&dx, E_Srand); - MakeInt(n, &eventdesc); -#endif /* EventMon */ - /* * Walk down the hash chains to find and return the nth element. */ @@ -497,43 +427,27 @@ operator{0,1} ? random(underef x -> dx) */ rval = RandVal; rval *= val; - -#ifdef EventMon - EVValD(&dx, E_Rrand); - MakeInt(rval + 1, &eventdesc); - EVValD(&eventdesc, E_Rsub); -#endif /* EventMon */ - return struct_var(&rec->fields[(word)rval], rec); } } default: { -#ifdef LargeInts if !cnv:integer(dx) then runerr(113, dx) -#else /* LargeInts */ - if !cnv:C_integer(dx,v) then - runerr(113, dx) -#endif /* LargeInts */ - abstract { return integer ++ real } body { double rval; - -#ifdef LargeInts C_integer v; if (Type(dx) == T_Lrgint) { if (bigrand(&dx, &result) == Error) /* alcbignum failed */ runerr(0); return result; } - v = IntVal(dx); -#endif /* LargeInts */ + /* * x is an integer, be sure that it's non-negative. */ @@ -690,12 +604,6 @@ operator{0,1} [] subsc(underef x -> dx,y) register union block *bp; /* doesn't need to be tended */ struct b_list *lp; /* doesn't need to be tended */ -#ifdef EventMon - EVValD(&dx, E_Lref); - MakeInt(y, &eventdesc); - EVValD(&eventdesc, E_Lsub); -#endif /* EventMon */ - /* * Make sure that subscript y is in range. */ @@ -742,9 +650,6 @@ operator{0,1} [] subsc(underef x -> dx,y) uword hn; struct b_tvtbl *tp; - EVValD(&dx, E_Tref); - EVValD(&y, E_Tsub); - hn = hash(&y); Protect(tp = alctvtbl(&dx, &y, hn), runerr(0)); return tvtbl(tp); @@ -777,13 +682,6 @@ operator{0,1} [] subsc(underef x -> dx,y) for(i=0; i<nf; i++) { if (len == StrLen(bp2->proc.lnames[i]) && !strncmp(loc, StrLoc(bp2->proc.lnames[i]), len)) { - -#ifdef EventMon - EVValD(&dx, E_Rref); - MakeInt(i+1, &eventdesc); - EVValD(&eventdesc, E_Rsub); -#endif /* EventMon */ - /* * Found the field, return a pointer to it. */ @@ -802,13 +700,6 @@ operator{0,1} [] subsc(underef x -> dx,y) i = cvpos(y, (word)(bp->record.recdesc->proc.nfields)); if (i == CvtFail || i > bp->record.recdesc->proc.nfields) fail; - -#ifdef EventMon - EVValD(&dx, E_Rref); - MakeInt(i, &eventdesc); - EVValD(&eventdesc, E_Rsub); -#endif /* EventMon */ - /* * Locate the appropriate field and return a pointer to it. */ |