Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/embryo

Dir     : e17/libs/embryo/src/lib


Modified Files:
        embryo_amx.c embryo_private.h 


Log Message:


fix some code up.. clean.. a FIXME i noticed...

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/embryo/src/lib/embryo_amx.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- embryo_amx.c        25 Mar 2004 07:03:00 -0000      1.7
+++ embryo_amx.c        26 Mar 2004 03:24:33 -0000      1.8
@@ -111,8 +111,6 @@
 _embryo_program_init(Embryo_Program *ep, void *code)
 {
    Embryo_Header    *hdr;
-   Embryo_Func_Stub *fs;
-   int               i, num;
    
    if ((ep->flags & EMBRYO_FLAG_RELOC)) return 1;
    ep->code = (unsigned char *)code;
@@ -205,7 +203,7 @@
    Embryo_Program *ep;
    void *code_data;
    
-   if (size < sizeof(Embryo_Header)) return NULL;
+   if (size < (int)sizeof(Embryo_Header)) return NULL;
    
    ep = calloc(1, sizeof(Embryo_Program));
    if (!ep) return NULL;
@@ -228,7 +226,7 @@
 {
    Embryo_Program *ep;
    
-   if (size < sizeof(Embryo_Header)) return NULL;
+   if (size < (int)sizeof(Embryo_Header)) return NULL;
    
    ep = calloc(1, sizeof(Embryo_Program));
    if (!ep) return NULL;
@@ -256,7 +254,7 @@
    fseek(f, 0, SEEK_END);
    program_size = ftell(f);
    rewind(f);
-   if (program_size < sizeof(Embryo_Header))
+   if (program_size < (int)sizeof(Embryo_Header))
      {
        fclose(f);
        return NULL;
@@ -268,7 +266,7 @@
      }
    rewind(f);
    embryo_swap_32((unsigned int *)(&hdr.size));
-   if (hdr.size < program_size) program_size = hdr.size;
+   if ((int)hdr.size < program_size) program_size = hdr.size;
    program = malloc(program_size);
    if (!program)
      {
@@ -508,7 +506,7 @@
          /* EMBRYO_ERROR_INIT_JIT  */ "Cannot initialize the JIT",
          /* EMBRYO_ERROR_PARAMS    */ "Parameter error",
      };
-   if ((error < 0) || (error >= (sizeof(messages) / sizeof(messages[0]))))
+   if ((error < 0) || (error >= (int)(sizeof(messages) / sizeof(messages[0]))))
      return (const char *)"(unknown)";
    return messages[error];
 }
@@ -811,38 +809,35 @@
             break;
           case EMBRYO_OP_LREF_S_PRI:
             GETPARAM(offs);
-            offs= * (Embryo_Cell *)(data+(int)frm+(int)offs);
-            pri= * (Embryo_Cell *)(data+(int)offs);
+            offs = *(Embryo_Cell *)(data + (int)frm + (int)offs);
+            pri = *(Embryo_Cell *)(data + (int)offs);
             break;
           case EMBRYO_OP_LREF_S_ALT:
             GETPARAM(offs);
-            offs= * (Embryo_Cell *)(data+(int)frm+(int)offs);
-            alt= * (Embryo_Cell *)(data+(int)offs);
+            offs = *(Embryo_Cell *)(data + (int)frm + (int)offs);
+            alt = *(Embryo_Cell *)(data + (int)offs);
             break;
           case EMBRYO_OP_LOAD_I:
-            /* verify address */
-            if (pri>=hea && pri<stk || (Embryo_UCell)pri>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            pri= * (Embryo_Cell *)(data+(int)pri);
+            CHKMEM(pri);
+            pri = *(Embryo_Cell *)(data + (int)pri);
             break;
           case EMBRYO_OP_LODB_I:
             GETPARAM(offs);
-            /* verify address */
-            if (pri>=hea && pri<stk || (Embryo_UCell)pri>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
+            CHKMEM(pri);
+            /* FIXME: handle unaligned access for 2 & 4 bytes */
             switch (offs)
               {
                case 1:
-                 pri= * (data+(int)pri);
+                 pri = *(data + (int)pri);
                  break;
                case 2:
-                 pri= * (unsigned short *)(data+(int)pri);
+                 pri = *(unsigned short *)(data + (int)pri);
                  break;
                case 4:
-                 pri= * (unsigned int *)(data+(int)pri);
+                 pri = *(unsigned int *)(data + (int)pri);
                  break;
                default:
-                 ABORT(ep,EMBRYO_ERROR_INVINSTR);
+                 ABORT(ep, EMBRYO_ERROR_INVINSTR);
                  break;
               }
             break;
@@ -854,109 +849,101 @@
             break;
           case EMBRYO_OP_ADDR_PRI:
             GETPARAM(pri);
-            pri+=frm;
+            pri += frm;
             break;
           case EMBRYO_OP_ADDR_ALT:
             GETPARAM(alt);
-            alt+=frm;
+            alt += frm;
             break;
           case EMBRYO_OP_STOR_PRI:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)offs)=pri;
+            *(Embryo_Cell *)(data + (int)offs) = pri;
             break;
           case EMBRYO_OP_STOR_ALT:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)offs)=alt;
+            *(Embryo_Cell *)(data + (int)offs) = alt;
             break;
           case EMBRYO_OP_STOR_S_PRI:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)frm+(int)offs)=pri;
+            *(Embryo_Cell *)(data + (int)frm + (int)offs) = pri;
             break;
           case EMBRYO_OP_STOR_S_ALT:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)frm+(int)offs)=alt;
+            *(Embryo_Cell *)(data + (int)frm + (int)offs) = alt;
             break;
           case EMBRYO_OP_SREF_PRI:
             GETPARAM(offs);
-            offs= * (Embryo_Cell *)(data+(int)offs);
-            *(Embryo_Cell *)(data+(int)offs)=pri;
+            offs = *(Embryo_Cell *)(data + (int)offs);
+            *(Embryo_Cell *)(data + (int)offs) = pri;
             break;
           case EMBRYO_OP_SREF_ALT:
             GETPARAM(offs);
-            offs= * (Embryo_Cell *)(data+(int)offs);
-            *(Embryo_Cell *)(data+(int)offs)=alt;
+            offs = *(Embryo_Cell *)(data + (int)offs);
+            *(Embryo_Cell *)(data + (int)offs) = alt;
             break;
           case EMBRYO_OP_SREF_S_PRI:
             GETPARAM(offs);
-            offs= * (Embryo_Cell *)(data+(int)frm+(int)offs);
-            *(Embryo_Cell *)(data+(int)offs)=pri;
+            offs = *(Embryo_Cell *)(data + (int)frm + (int)offs);
+            *(Embryo_Cell *)(data + (int)offs) = pri;
             break;
           case EMBRYO_OP_SREF_S_ALT:
             GETPARAM(offs);
-            offs= * (Embryo_Cell *)(data+(int)frm+(int)offs);
-            *(Embryo_Cell *)(data+(int)offs)=alt;
+            offs = *(Embryo_Cell *)(data + (int)frm + (int)offs);
+            *(Embryo_Cell *)(data + (int)offs) = alt;
             break;
           case EMBRYO_OP_STOR_I:
-            /* verify address */
-            if (alt>=hea && alt<stk || (Embryo_UCell)alt>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            *(Embryo_Cell *)(data+(int)alt)=pri;
+            CHKMEM(alt);
+            *(Embryo_Cell *)(data + (int)alt) = pri;
             break;
           case EMBRYO_OP_STRB_I:
             GETPARAM(offs);
-            /* verify address */
-            if (alt>=hea && alt<stk || (Embryo_UCell)alt>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
+            CHKMEM(alt);
             switch (offs)
               {
                case 1:
-                 *(data+(int)alt)=(unsigned char)pri;
+                 *(data + (int)alt) = (unsigned char)pri;
                  break;
                case 2:
-                 *(unsigned short *)(data+(int)alt)=(unsigned short)pri;
+                 *(unsigned short *)(data + (int)alt) = (unsigned short)pri;
                  break;
                case 4:
-                 *(unsigned int *)(data+(int)alt)=(unsigned int)pri;
+                 *(unsigned int *)(data + (int)alt) = (unsigned int)pri;
                  break;
                default:
-                 ABORT(ep,EMBRYO_ERROR_INVINSTR);
+                 ABORT(ep, EMBRYO_ERROR_INVINSTR);
                  break;
               } /* switch */
             break;
           case EMBRYO_OP_LIDX:
-            offs=pri*sizeof(Embryo_Cell)+alt;
-            /* verify address */
-            if (offs>=hea && offs<stk || (Embryo_UCell)offs>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            pri= * (Embryo_Cell *)(data+(int)offs);
+            offs = (pri * sizeof(Embryo_Cell)) + alt;
+            CHKMEM(offs);
+            pri = *(Embryo_Cell *)(data + (int)offs);
             break;
           case EMBRYO_OP_LIDX_B:
             GETPARAM(offs);
-            offs=(pri << (int)offs)+alt;
-            /* verify address */
-            if (offs>=hea && offs<stk || (Embryo_UCell)offs>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            pri= * (Embryo_Cell *)(data+(int)offs);
+            offs = (pri << (int)offs) + alt;
+            CHKMEM(offs);
+            pri = *(Embryo_Cell *)(data + (int)offs);
             break;
           case EMBRYO_OP_IDXADDR:
-            pri=pri*sizeof(Embryo_Cell)+alt;
+            pri = (pri * sizeof(Embryo_Cell)) + alt;
             break;
           case EMBRYO_OP_IDXADDR_B:
             GETPARAM(offs);
-            pri=(pri << (int)offs)+alt;
+            pri = (pri << (int)offs) + alt;
             break;
           case EMBRYO_OP_ALIGN_PRI:
             GETPARAM(offs);
 #ifdef WORDS_BIGENDIAN
-            if ((size_t)offs<sizeof(Embryo_Cell))
-              pri ^= sizeof(Embryo_Cell)-offs;
+            if ((size_t)offs < sizeof(Embryo_Cell))
+              pri ^= sizeof(Embryo_Cell) - offs;
 #endif       
             break;
           case EMBRYO_OP_ALIGN_ALT:
             GETPARAM(offs);
 #ifdef WORDS_BIGENDIAN
-            if ((size_t)offs<sizeof(Embryo_Cell))
-              alt ^= sizeof(Embryo_Cell)-offs;
+            if ((size_t)offs < sizeof(Embryo_Cell))
+              alt ^= sizeof(Embryo_Cell) - offs;
 #endif       
             break;
           case EMBRYO_OP_LCTRL:
@@ -964,28 +951,28 @@
             switch (offs)
               {
                case 0:
-                 pri=hdr->cod;
+                 pri = hdr->cod;
                  break;
                case 1:
-                 pri=hdr->dat;
+                 pri = hdr->dat;
                  break;
                case 2:
-                 pri=hea;
+                 pri = hea;
                  break;
                case 3:
-                 pri=ep->stp;
+                 pri = ep->stp;
                  break;
                case 4:
-                 pri=stk;
+                 pri = stk;
                  break;
                case 5:
-                 pri=frm;
+                 pri = frm;
                  break;
                case 6:
-                 pri=(Embryo_Cell)((unsigned char *)cip - code);
+                 pri = (Embryo_Cell)((unsigned char *)cip - code);
                  break;
                default:
-                 ABORT(ep,EMBRYO_ERROR_INVINSTR);
+                 ABORT(ep, EMBRYO_ERROR_INVINSTR);
                  break;
               }
             break;
@@ -996,35 +983,35 @@
                case 0:
                case 1:
                case 2:
-                 hea=pri;
+                 hea = pri;
                  break;
                case 3:
                  /* cannot change these parameters */
                  break;
                case 4:
-                 stk=pri;
+                 stk = pri;
                  break;
                case 5:
-                 frm=pri;
+                 frm = pri;
                  break;
                case 6:
-                 cip=(Embryo_Cell *)(code + (int)pri);
+                 cip = (Embryo_Cell *)(code + (int)pri);
                  break;
                default:
-                 ABORT(ep,EMBRYO_ERROR_INVINSTR);
+                 ABORT(ep, EMBRYO_ERROR_INVINSTR);
                  break;
               }
             break;
           case EMBRYO_OP_MOVE_PRI:
-            pri=alt;
+            pri = alt;
             break;
           case EMBRYO_OP_MOVE_ALT:
-            alt=pri;
+            alt = pri;
             break;
           case EMBRYO_OP_XCHG:
-            offs=pri;         /* offs is a temporary variable */
-            pri=alt;
-            alt=offs;
+            offs = pri;         /* offs is a temporary variable */
+            pri = alt;
+            alt = offs;
             break;
           case EMBRYO_OP_PUSH_PRI:
             PUSH(pri);
@@ -1043,11 +1030,11 @@
             break;
           case EMBRYO_OP_PUSH:
             GETPARAM(offs);
-            PUSH(* (Embryo_Cell *)(data+(int)offs));
+            PUSH(*(Embryo_Cell *)(data + (int)offs));
             break;
           case EMBRYO_OP_PUSH_S:
             GETPARAM(offs);
-            PUSH(* (Embryo_Cell *)(data+(int)frm+(int)offs));
+            PUSH(*(Embryo_Cell *)(data + (int)frm + (int)offs));
             break;
           case EMBRYO_OP_POP_PRI:
             POP(pri);
@@ -1057,289 +1044,283 @@
             break;
           case EMBRYO_OP_STACK:
             GETPARAM(offs);
-            alt=stk;
-            stk+=offs;
+            alt = stk;
+            stk += offs;
             CHKMARGIN();
             CHKSTACK();
             break;
           case EMBRYO_OP_HEAP:
             GETPARAM(offs);
-            alt=hea;
-            hea+=offs;
+            alt = hea;
+            hea += offs;
             CHKMARGIN();
             CHKHEAP();
             break;
           case EMBRYO_OP_PROC:
             PUSH(frm);
-            frm=stk;
+            frm = stk;
             CHKMARGIN();
             break;
           case EMBRYO_OP_RET:
             POP(frm);
             POP(offs);
             /* verify the return address */
-            if ((Embryo_UCell)offs>=codesize)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            cip=(Embryo_Cell *)(code+(int)offs);
+            if ((Embryo_UCell)offs >= codesize)
+              ABORT(ep, EMBRYO_ERROR_MEMACCESS);
+            cip = (Embryo_Cell *)(code + (int)offs);
             break;
           case EMBRYO_OP_RETN:
             POP(frm);
             POP(offs);
             /* verify the return address */
-            if ((Embryo_UCell)offs>=codesize)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            cip=(Embryo_Cell *)(code+(int)offs);
-            stk+= *(Embryo_Cell *)(data+(int)stk) + sizeof(Embryo_Cell); /* remove 
parameters from the stack */
-            ep->stk=stk;
+            if ((Embryo_UCell)offs >= codesize)
+              ABORT(ep, EMBRYO_ERROR_MEMACCESS);
+            cip = (Embryo_Cell *)(code + (int)offs);
+            stk += *(Embryo_Cell *)(data + (int)stk) + sizeof(Embryo_Cell); /* remove 
parameters from the stack */
+            ep->stk = stk;
             break;
           case EMBRYO_OP_CALL:
-            PUSH(((unsigned char *)cip-code)+sizeof(Embryo_Cell));/* skip address */
-            cip=JUMPABS(code, cip);                   /* jump to the address */
+            PUSH(((unsigned char *)cip - code) + sizeof(Embryo_Cell));/* skip address 
*/
+            cip = JUMPABS(code, cip); /* jump to the address */
             break;
           case EMBRYO_OP_CALL_PRI:
-            PUSH((unsigned char *)cip-code);
-            cip=(Embryo_Cell *)(code+(int)pri);
+            PUSH((unsigned char *)cip - code);
+            cip = (Embryo_Cell *)(code + (int)pri);
           break;
           case EMBRYO_OP_JUMP:
             /* since the GETPARAM() macro modifies cip, you cannot
              * do GETPARAM(cip) directly */
-            cip=JUMPABS(code, cip);
+            cip = JUMPABS(code, cip);
             break;
           case EMBRYO_OP_JREL:
-            offs=*cip;
-            cip=(Embryo_Cell *)((unsigned char *)cip + (int)offs + 
sizeof(Embryo_Cell));
+            offs = *cip;
+            cip = (Embryo_Cell *)((unsigned char *)cip + (int)offs + 
sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JZER:
-            if (pri==0)
-              cip=JUMPABS(code, cip);
+            if (pri == 0)
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JNZ:
-            if (pri!=0)
-              cip=JUMPABS(code, cip);
+            if (pri != 0)
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JEQ:
             if (pri==alt)
-              cip=JUMPABS(code, cip);
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JNEQ:
-            if (pri!=alt)
-              cip=JUMPABS(code, cip);
+            if (pri != alt)
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JLESS:
             if ((Embryo_UCell)pri < (Embryo_UCell)alt)
-              cip=JUMPABS(code, cip);
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JLEQ:
             if ((Embryo_UCell)pri <= (Embryo_UCell)alt)
-              cip=JUMPABS(code, cip);
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JGRTR:
             if ((Embryo_UCell)pri > (Embryo_UCell)alt)
-              cip=JUMPABS(code, cip);
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JGEQ:
             if ((Embryo_UCell)pri >= (Embryo_UCell)alt)
-              cip=JUMPABS(code, cip);
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JSLESS:
-            if (pri<alt)
-              cip=JUMPABS(code, cip);
+            if (pri < alt)
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JSLEQ:
-            if (pri<=alt)
-              cip=JUMPABS(code, cip);
+            if (pri <= alt)
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JSGRTR:
-            if (pri>alt)
-              cip=JUMPABS(code, cip);
+            if (pri > alt)
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_JSGEQ:
-            if (pri>=alt)
-              cip=JUMPABS(code, cip);
+            if (pri >= alt)
+              cip = JUMPABS(code, cip);
             else
-              cip=(Embryo_Cell *)((unsigned char *)cip+sizeof(Embryo_Cell));
+              cip = (Embryo_Cell *)((unsigned char *)cip + sizeof(Embryo_Cell));
             break;
           case EMBRYO_OP_SHL:
-            pri<<=alt;
+            pri <<= alt;
             break;
           case EMBRYO_OP_SHR:
-            pri=(Embryo_UCell)pri >> (int)alt;
+            pri = (Embryo_UCell)pri >> (int)alt;
             break;
           case EMBRYO_OP_SSHR:
-            pri>>=alt;
+            pri >>= alt;
             break;
           case EMBRYO_OP_SHL_C_PRI:
             GETPARAM(offs);
-            pri<<=offs;
+            pri <<= offs;
             break;
           case EMBRYO_OP_SHL_C_ALT:
             GETPARAM(offs);
-            alt<<=offs;
+            alt <<= offs;
             break;
           case EMBRYO_OP_SHR_C_PRI:
             GETPARAM(offs);
-            pri=(Embryo_UCell)pri >> (int)offs;
+            pri = (Embryo_UCell)pri >> (int)offs;
             break;
           case EMBRYO_OP_SHR_C_ALT:
             GETPARAM(offs);
-            alt=(Embryo_UCell)alt >> (int)offs;
+            alt = (Embryo_UCell)alt >> (int)offs;
             break;
           case EMBRYO_OP_SMUL:
-            pri*=alt;
+            pri *= alt;
             break;
           case EMBRYO_OP_SDIV:
-            if (alt==0)
-              ABORT(ep,EMBRYO_ERROR_DIVIDE);
+            if (alt == 0) ABORT(ep, EMBRYO_ERROR_DIVIDE);
             /* divide must always round down; this is a bit
              * involved to do in a machine-independent way.
              */
-            offs=(pri % alt + alt) % alt;     /* true modulus */
-            pri=(pri - offs) / alt;           /* division result */
-            alt=offs;
+            offs = ((pri % alt) + alt) % alt; /* true modulus */
+            pri = (pri - offs) / alt;         /* division result */
+            alt = offs;
             break;
           case EMBRYO_OP_SDIV_ALT:
-            if (pri==0)
-              ABORT(ep,EMBRYO_ERROR_DIVIDE);
+            if (pri == 0) ABORT(ep, EMBRYO_ERROR_DIVIDE);
             /* divide must always round down; this is a bit
              * involved to do in a machine-independent way.
              */
-            offs=(alt % pri + pri) % pri;     /* true modulus */
-            pri=(alt - offs) / pri;           /* division result */
-            alt=offs;
+            offs = ((alt % pri) + pri) % pri; /* true modulus */
+            pri = (alt - offs) / pri;         /* division result */
+            alt = offs;
             break;
           case EMBRYO_OP_UMUL:
-            pri=(Embryo_UCell)pri * (Embryo_UCell)alt;
+            pri = (Embryo_UCell)pri * (Embryo_UCell)alt;
             break;
           case EMBRYO_OP_UDIV:
-            if (alt==0)
-              ABORT(ep,EMBRYO_ERROR_DIVIDE);
-            offs=(Embryo_UCell)pri % (Embryo_UCell)alt;     /* temporary storage */
-            pri=(Embryo_UCell)pri / (Embryo_UCell)alt;
-            alt=offs;
+            if (alt == 0) ABORT(ep, EMBRYO_ERROR_DIVIDE);
+            offs = (Embryo_UCell)pri % (Embryo_UCell)alt; /* temporary storage */
+            pri = (Embryo_UCell)pri / (Embryo_UCell)alt;
+            alt = offs;
             break;
           case EMBRYO_OP_UDIV_ALT:
-            if (pri==0)
-              ABORT(ep,EMBRYO_ERROR_DIVIDE);
-            offs=(Embryo_UCell)alt % (Embryo_UCell)pri;     /* temporary storage */
-            pri=(Embryo_UCell)alt / (Embryo_UCell)pri;
-            alt=offs;
+            if (pri == 0) ABORT(ep, EMBRYO_ERROR_DIVIDE);
+            offs = (Embryo_UCell)alt % (Embryo_UCell)pri;     /* temporary storage */
+            pri = (Embryo_UCell)alt / (Embryo_UCell)pri;
+            alt = offs;
             break;
           case EMBRYO_OP_ADD:
-            pri+=alt;
+            pri += alt;
             break;
           case EMBRYO_OP_SUB:
-            pri-=alt;
+            pri -= alt;
             break;
           case EMBRYO_OP_SUB_ALT:
-            pri=alt-pri;
+            pri = alt - pri;
             break;
           case EMBRYO_OP_AND:
-            pri&=alt;
+            pri &= alt;
             break;
           case EMBRYO_OP_OR:
-            pri|=alt;
+            pri |= alt;
             break;
           case EMBRYO_OP_XOR:
-            pri^=alt;
+            pri ^= alt;
             break;
           case EMBRYO_OP_NOT:
-            pri=!pri;
+            pri = !pri;
             break;
           case EMBRYO_OP_NEG:
-            pri=-pri;
+            pri = -pri;
             break;
           case EMBRYO_OP_INVERT:
-            pri=~pri;
+            pri = ~pri;
             break;
           case EMBRYO_OP_ADD_C:
             GETPARAM(offs);
-            pri+=offs;
+            pri += offs;
             break;
           case EMBRYO_OP_SMUL_C:
             GETPARAM(offs);
-            pri*=offs;
+            pri *= offs;
             break;
           case EMBRYO_OP_ZERO_PRI:
-            pri=0;
+            pri = 0;
             break;
           case EMBRYO_OP_ZERO_ALT:
-            alt=0;
+            alt = 0;
             break;
           case EMBRYO_OP_ZERO:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)offs)=0;
+            *(Embryo_Cell *)(data + (int)offs) = 0;
             break;
           case EMBRYO_OP_ZERO_S:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)frm+(int)offs)=0;
+            *(Embryo_Cell *)(data + (int)frm + (int)offs) = 0;
             break;
           case EMBRYO_OP_SIGN_PRI:
-            if ((pri & 0xff)>=0x80)
-              pri|= ~ (Embryo_UCell)0xff;
+            if ((pri & 0xff) >= 0x80) pri |= ~(Embryo_UCell)0xff;
             break;
           case EMBRYO_OP_SIGN_ALT:
-            if ((alt & 0xff)>=0x80)
-              alt|= ~ (Embryo_UCell)0xff;
+            if ((alt & 0xff) >= 0x80) alt |= ~(Embryo_UCell)0xff;
             break;
           case EMBRYO_OP_EQ:
-            pri= pri==alt ? 1 : 0;
+            pri = (pri == alt) ? 1 : 0;
             break;
           case EMBRYO_OP_NEQ:
-            pri= pri!=alt ? 1 : 0;
+            pri = (pri != alt) ? 1 : 0;
             break;
           case EMBRYO_OP_LESS:
-            pri= (Embryo_UCell)pri < (Embryo_UCell)alt ? 1 : 0;
+            pri = ((Embryo_UCell)pri < (Embryo_UCell)alt) ? 1 : 0;
             break;
           case EMBRYO_OP_LEQ:
-          pri= (Embryo_UCell)pri <= (Embryo_UCell)alt ? 1 : 0;
+          pri = ((Embryo_UCell)pri <= (Embryo_UCell)alt) ? 1 : 0;
             break;
           case EMBRYO_OP_GRTR:
-            pri= (Embryo_UCell)pri > (Embryo_UCell)alt ? 1 : 0;
+            pri = ((Embryo_UCell)pri > (Embryo_UCell)alt) ? 1 : 0;
           break;
           case EMBRYO_OP_GEQ:
-            pri= (Embryo_UCell)pri >= (Embryo_UCell)alt ? 1 : 0;
+            pri = ((Embryo_UCell)pri >= (Embryo_UCell)alt) ? 1 : 0;
             break;
           case EMBRYO_OP_SLESS:
-            pri= pri<alt ? 1 : 0;
+            pri = (pri < alt) ? 1 : 0;
             break;
           case EMBRYO_OP_SLEQ:
-            pri= pri<=alt ? 1 : 0;
+            pri = (pri <= alt) ? 1 : 0;
             break;
           case EMBRYO_OP_SGRTR:
-            pri= pri>alt ? 1 : 0;
+            pri = (pri > alt) ? 1 : 0;
             break;
           case EMBRYO_OP_SGEQ:
-            pri= pri>=alt ? 1 : 0;
+            pri = (pri >= alt) ? 1 : 0;
             break;
           case EMBRYO_OP_EQ_C_PRI:
             GETPARAM(offs);
-            pri= pri==offs ? 1 : 0;
+            pri = (pri == offs) ? 1 : 0;
             break;
           case EMBRYO_OP_EQ_C_ALT:
             GETPARAM(offs);
-            pri= alt==offs ? 1 : 0;
+            pri = (alt == offs) ? 1 : 0;
             break;
           case EMBRYO_OP_INC_PRI:
             pri++;
@@ -1349,14 +1330,14 @@
             break;
           case EMBRYO_OP_INC:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)offs) += 1;
+            *(Embryo_Cell *)(data + (int)offs) += 1;
             break;
           case EMBRYO_OP_INC_S:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)frm+(int)offs) += 1;
+            *(Embryo_Cell *)(data + (int)frm + (int)offs) += 1;
             break;
           case EMBRYO_OP_INC_I:
-            *(Embryo_Cell *)(data+(int)pri) += 1;
+            *(Embryo_Cell *)(data + (int)pri) += 1;
             break;
           case EMBRYO_OP_DEC_PRI:
             pri--;
@@ -1366,55 +1347,38 @@
             break;
           case EMBRYO_OP_DEC:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)offs) -= 1;
+            *(Embryo_Cell *)(data + (int)offs) -= 1;
             break;
           case EMBRYO_OP_DEC_S:
             GETPARAM(offs);
-            *(Embryo_Cell *)(data+(int)frm+(int)offs) -= 1;
+            *(Embryo_Cell *)(data + (int)frm + (int)offs) -= 1;
             break;
           case EMBRYO_OP_DEC_I:
-            *(Embryo_Cell *)(data+(int)pri) -= 1;
+            *(Embryo_Cell *)(data + (int)pri) -= 1;
             break;
           case EMBRYO_OP_MOVS:
             GETPARAM(offs);
-            /* verify top & bottom memory addresses, for both source and destination
-             * addresses
-             */
-            if (pri>=hea && pri<stk || (Embryo_UCell)pri>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            if ((pri+offs)>hea && (pri+offs)<stk || 
(Embryo_UCell)(pri+offs)>(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            if (alt>=hea && alt<stk || (Embryo_UCell)alt>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            if ((alt+offs)>hea && (alt+offs)<stk || 
(Embryo_UCell)(alt+offs)>(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
+            CHKMEM(pri);
+            CHKMEM(pri + offs);
+            CHKMEM(alt);
+            CHKMEM(alt + offs);
             memcpy(data+(int)alt, data+(int)pri, (int)offs);
             break;
           case EMBRYO_OP_CMPS:
             GETPARAM(offs);
-            /* verify top & bottom memory addresses, for both source and destination
-             * addresses
-             */
-            if (pri>=hea && pri<stk || (Embryo_UCell)pri>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            if ((pri+offs)>hea && (pri+offs)<stk || 
(Embryo_UCell)(pri+offs)>(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            if (alt>=hea && alt<stk || (Embryo_UCell)alt>=(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            if ((alt+offs)>hea && (alt+offs)<stk || 
(Embryo_UCell)(alt+offs)>(Embryo_UCell)ep->stp)
-              ABORT(ep,EMBRYO_ERROR_MEMACCESS);
-            pri=memcmp(data+(int)alt, data+(int)pri, (int)offs);
+            CHKMEM(pri);
+            CHKMEM(pri + offs);
+            CHKMEM(alt);
+            CHKMEM(alt + offs);
+            pri = memcmp(data + (int)alt, data + (int)pri, (int)offs);
             break;
           case EMBRYO_OP_FILL:
             GETPARAM(offs);
-            /* verify top & bottom memory addresses (destination only) */
-            if (((alt >= hea) && (alt < stk)) || 
-                ((Embryo_UCell)alt >= (Embryo_UCell)ep->stp))
-              ABORT(ep, EMBRYO_ERROR_MEMACCESS);
-            if ((((alt + offs) > hea) && ((alt + offs) < stk)) || 
-                ((Embryo_UCell)(alt + offs) > (Embryo_UCell)ep->stp))
-              ABORT(ep, EMBRYO_ERROR_MEMACCESS);
-            for (i = (int)alt; (size_t)offs >= sizeof(Embryo_Cell); i += 
sizeof(Embryo_Cell), offs -= sizeof(Embryo_Cell))
+            CHKMEM(alt);
+            CHKMEM(alt + offs);
+            for (i = (int)alt; 
+                 (size_t)offs >= sizeof(Embryo_Cell); 
+                 i += sizeof(Embryo_Cell), offs -= sizeof(Embryo_Cell))
               *(Embryo_Cell *)(data + i) = pri;
             break;
           case EMBRYO_OP_HALT:
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/embryo/src/lib/embryo_private.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- embryo_private.h    25 Mar 2004 06:21:58 -0000      1.5
+++ embryo_private.h    26 Mar 2004 03:24:33 -0000      1.6
@@ -194,6 +194,7 @@
 #define CHKMARGIN()  if ((hea + STKMARGIN) > stk) {ep->error = EMBRYO_ERROR_STACKERR; 
return 0;}
 #define CHKSTACK()   if (stk > ep->stp) {ep->run_count--; ep->error = 
EMBRYO_ERROR_STACKLOW; return 0;}
 #define CHKHEAP()    if (hea < ep->hlw) {ep->run_count--; ep->error = 
EMBRYO_ERROR_HEAPLOW; return 0;}
+#define CHKMEM(x)    if ((((x) >= hea) && ((x) < stk)) || ((Embryo_UCell)(x) >= 
(Embryo_UCell)ep->stp)) ABORT(ep, EMBRYO_ERROR_MEMACCESS);
 
 typedef struct _Embryo_Param        Embryo_Param;
 typedef struct _Embryo_Header       Embryo_Header;




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to