=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/miscf.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -p -r1.28 -r1.29 --- OpenXM_contrib2/asir2000/builtin/miscf.c 2010/12/25 23:10:15 1.28 +++ OpenXM_contrib2/asir2000/builtin/miscf.c 2013/06/13 07:45:28 1.29 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/builtin/miscf.c,v 1.27 2008/08/26 16:17:03 ohara Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/miscf.c,v 1.28 2010/12/25 23:10:15 ohara Exp $ */ #include "ca.h" #include "parse.h" @@ -355,7 +355,9 @@ void Pheap(arg,rp) NODE arg; Q *rp; { - int h0,h; + size_t h0,h; + unsigned int u,l; + N n; void GC_expand_hp(int); h0 = get_heapsize(); @@ -365,7 +367,16 @@ Q *rp; GC_expand_hp(h-h0); } h = get_heapsize(); - STOQ(h,*rp); + if(sizeof(size_t)>sizeof(int)) { + u = h>>(sizeof(int)*CHAR_BIT); l = h&(~0); + if ( !u ) STOQ(l,*rp); + else { + n = NALLOC(2); PL(n)=2; BD(n)[0] = l; BD(n)[1] = u; + NTOQ(n,1,*rp); + } + }else { + STOQ(h,*rp); + } } unsigned int get_asir_version();