[BACK]Return to primitive.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Diff for /OpenXM/src/kan96xx/Kan/primitive.c between version 1.18 and 1.19

version 1.18, 2004/09/17 02:42:57 version 1.19, 2004/09/20 02:11:22
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/primitive.c,v 1.17 2004/09/16 02:22:03 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/primitive.c,v 1.18 2004/09/17 02:42:57 takayama Exp $ */
 /*   primitive.c */  /*   primitive.c */
 /*  The functions in this module were in stackmachine.c */  /*  The functions in this module were in stackmachine.c */
   
Line 200  void printObject(ob,nl,fp) 
Line 200  void printObject(ob,nl,fp) 
     case Sdouble:      case Sdouble:
       fprintf(fp,"<double> ");        fprintf(fp,"<double> ");
       break;        break;
       case SbyteArray:
         fprintf(fp,"<byteArray> ");
         break;
     default:      default:
       fprintf(fp,"<Unknown object tag. %d >",ob.tag);        fprintf(fp,"<Unknown object tag. %d >",ob.tag);
       break;        break;
Line 294  void printObject(ob,nl,fp) 
Line 297  void printObject(ob,nl,fp) 
   case Sdouble:    case Sdouble:
     fprintf(fp,"%f",KopDouble(ob));      fprintf(fp,"%f",KopDouble(ob));
     break;      break;
     case SbyteArray:
       printObject(byteArrayToArray(ob),nl,fp); /* Todo: I should save memory.*/
       break;
   default:    default:
     fprintf(fp,"[Unknown object tag.]");      fprintf(fp,"[Unknown object tag.]");
     break;      break;
Line 514  int executePrimitive(ob) 
Line 520  int executePrimitive(ob) 
         }          }
         Kpush(ob3);          Kpush(ob3);
         break;          break;
         case SbyteArray:
           n = getByteArraySize(ob2);
           ob3 = newByteArray(n,ob2);
           Kpush(ob3);
           break;
       default:        default:
         Kpush(ob2);          Kpush(ob2);
         break;          break;
Line 656  int executePrimitive(ob) 
Line 667  int executePrimitive(ob) 
           errorStackmachine("Index is out of bound. (put)\n");            errorStackmachine("Index is out of bound. (put)\n");
         }          }
         break;          break;
         case SbyteArray:
           i = ob2.lc.ival;
           size = getByteArraySize(ob3);
           if ((0 <= i) && (i<size)) {
                     if (ob1.tag != Sinteger) ob1 = Kto_int32(ob1);
             if (ob1.tag != Sinteger) errorStackmachine("One can put only integer.\n");
             KopByteArray(ob3)[i] = KopInteger(ob1);
           }else{
             errorStackmachine("Index is out of bound. (put)\n");
           }
           break;
       default: errorStackmachine("Usage:put");        default: errorStackmachine("Usage:put");
       }        }
       break;        break;
Line 726  int executePrimitive(ob) 
Line 748  int executePrimitive(ob) 
       break;        break;
     case Spoly:      case Spoly:
       Kpush(KpoInteger(KpolyLength(KopPOLY(ob1))));        Kpush(KpoInteger(KpolyLength(KopPOLY(ob1))));
         break;
       case SbyteArray:
         Kpush(KpoInteger(getByteArraySize(ob1)));
       break;        break;
     default: errorStackmachine("Usage:length");      default: errorStackmachine("Usage:length");
     }      }

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>