# 1 "runarray.m" struct _PRIVATE { struct _PRIVATE *isa; }; typedef struct _PRIVATE *id; struct _SHARED { id isa; id clsSuper; char *clsName; char *clsTypes; short clsSizInstance; short clsSizDict; struct _SLT *clsDispTable; long clsStatus; struct modDescriptor *clsMod; unsigned clsVersion; id clsCats; id *clsGlbl; }; extern id (* _imp(id,char*))(); extern id (* _impSuper(id,char*))(); extern struct modDescriptor *_OBJCBIND_runarray(void); static char **selTransTbl; struct _SLT {char *_cmd;id (*_imp)();}; struct modDescriptor { char *modName; char *modVersion; long modStatus; char *modMinSel; char *modMaxSel; id *modClsLst; short modSelRef; char **modSelTbl; struct methodDescriptor *modMapTbl; }; extern struct modDescriptor runarray_modDesc; # 1 "../../util/stdarg.h" #include # 1 "../../util/assert.h" #include # 1 "../../util/ctype.h" #include # 1 "../../util/stdlib.h" #include # 1 "../../util/stdio.h" #include # 1 "../../util/stdio.h" #include # 1 "../../util/stddef.h" #include # 53 "../../include/objcrt/objcrt.h" typedef char*SEL; typedef char*STR; typedef char BOOL; typedef FILE*IOD; typedef id SHR; # 62 "../../include/objcrt/objcrt.h" typedef id(*IMP)(); typedef void(*ARGIMP)(id,SEL,void*); # 85 "../../include/objcrt/objcrt.h" extern BOOL msgFlag; extern FILE*msgIOD; extern FILE*dbgIOD; extern BOOL allocFlag; extern BOOL dbgFlag; extern BOOL noCacheFlag; extern BOOL noNilRcvr; # 98 "../../include/objcrt/objcrt.h" SEL selUid(STR); STR selName(SEL); void dbg(char*fmt,...); void prnstack(FILE*file); void loadobjc(void*modPtr); void unloadobjc(void*modPtr); # 107 "../../include/objcrt/objcrt.h" IMP fwdimp(id,SEL,IMP); IMP fwdimpSuper(id,SEL,IMP); void fwdmsg(id,SEL,void*,ARGIMP); id selptrfwd(id,SEL,id,id,id,id); id idincref(id obj); id idassign(id*lhs,id rhs); id iddecref(id obj); extern id(*_fileIn)(FILE*); extern BOOL(*_fileOut)(FILE*,id); extern BOOL(*_storeOn)(STR,id); extern id(*_readFrom)(STR); void setfilein(id(*f)(FILE*)); void setfileout(BOOL(*f)(FILE*,id)); extern id(*_showOn)(id,unsigned); void*OC_Malloc(size_t); void*OC_MallocAtomic(size_t); void*OC_Calloc(size_t); void*OC_Realloc(void*,size_t); void*OC_Free(void*data); # 1 "../../util/string.h" #include # 31 "ordcltn.h" typedef struct objcol { int count; int capacity; id*ptr; }* objcol_t; # 28 "intarray.h" typedef struct intary { int capacity; int*ptr; }* intary_t; # 28 "runarray.h" struct RunArray_PRIVATE { # 42 "../../include/objcrt/Object.h" id isa; # 46 "../../include/objcrt/Object.h" unsigned short attr; unsigned short objID; # 30 "runarray.h" id runs; id values; unsigned size; int laststart; int lastend; int lastsegment;}; # 28 "runarray.h" extern id RunArray; # 28 "runarray.h" extern struct _SHARED _RunArray; extern struct _SHARED __RunArray; # 36 "runarray.m" static id i_RunArray_reset(struct RunArray_PRIVATE *self,SEL _cmd) {self-> laststart= -1; return(id)self; } static id i_RunArray_check(struct RunArray_PRIVATE *self,SEL _cmd) { id objcT0; # 44 "runarray.m" int i,n; id attrs; unsigned s; unsigned totalsize=0; (void)0; for(i=0,n=(objcT0=self->values,(*(unsigned(*)(id,SEL))_imp(objcT0,selTransTbl[0]))(objcT0,selTransTbl[0]));ivalues,(*(id(*)(id,SEL,unsigned))_imp(objcT1,selTransTbl[1]))(objcT1,selTransTbl[1],i)); (void)0; s=(objcT2=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT2,selTransTbl[2]))(objcT2,selTransTbl[2],i)); (void)0; totalsize+=s; } (void)0; return(id)self; } # 35 "intarray.h" extern id IntArray; # 39 "ordcltn.h" extern id OrdCltn; # 64 "runarray.m" static id c_RunArray_new(struct RunArray_PRIVATE *self,SEL _cmd) { id objcT3,objcT4,objcT5,objcT6; # 66 "runarray.m" return(objcT3=(objcT4=__RunArray.clsSuper,(*_impSuper(objcT4,selTransTbl[3]))((id)self,selTransTbl[3])),(*_imp(objcT3,selTransTbl[4]))(objcT3,selTransTbl[4],(objcT5=IntArray,(*_imp(objcT5,selTransTbl[3]))(objcT5,selTransTbl[3])),(objcT6=OrdCltn,(*_imp(objcT6,selTransTbl[3]))(objcT6,selTransTbl[3])))); } static id i_RunArray_free(struct RunArray_PRIVATE *self,SEL _cmd) { id objcT7,objcT8,objcT9,objcT10,objcT11; # 71 "runarray.m" (objcT7=self->values,(*(id(*)(id,SEL,SEL))_imp(objcT7,selTransTbl[5]))(objcT7,selTransTbl[5],selTransTbl[6])); (objcT8=(objcT9=self->values,(*_imp(objcT9,selTransTbl[6]))(objcT9,selTransTbl[6])),(*_imp(objcT8,selTransTbl[7]))(objcT8,selTransTbl[7])); (objcT10=self->runs,(*_imp(objcT10,selTransTbl[7]))(objcT10,selTransTbl[7])); return(objcT11=_RunArray.clsSuper,(*_impSuper(objcT11,selTransTbl[7]))((id)self,selTransTbl[7])); } static id i_RunArray_values(struct RunArray_PRIVATE *self,SEL _cmd) { return self->values; } static id i_RunArray_runs(struct RunArray_PRIVATE *self,SEL _cmd) { return self->runs; } static id i_RunArray_runs_values_(struct RunArray_PRIVATE *self,SEL _cmd,id r,id v) { id objcT12; self-> # 90 "runarray.m" runs=r;self-> values=v; (objcT12=(id)self,(*_imp(objcT12,selTransTbl[8]))(objcT12,selTransTbl[8])); return(id)self; } # 28 "outofbnd.h" extern id OutOfBounds; # 28 "notfound.h" extern id NotFound; # 96 "runarray.m" static id i_RunArray_at_(struct RunArray_PRIVATE *self,SEL _cmd,unsigned i) { id objcT17,objcT20; # 98 "runarray.m" int j,n; unsigned p; if(i>=self->size) { id objcT13; # 103 "runarray.m" (objcT13=OutOfBounds,(*_imp(objcT13,selTransTbl[9]))(objcT13,selTransTbl[9])); return(id)0; } # 109 "runarray.m" if(self->laststart!= -1) { id objcT14; # 111 "runarray.m" if(self->laststart<=i&&ilastend) return(objcT14=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT14,selTransTbl[1]))(objcT14,selTransTbl[1],self->lastsegment)); if(i==self->lastend) { id objcT15,objcT16; self-> # 115 "runarray.m" lastsegment++;self-> laststart=self->lastend;self-> lastend=self->laststart+(objcT15=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT15,selTransTbl[2]))(objcT15,selTransTbl[2],self->lastsegment)); return(objcT16=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT16,selTransTbl[1]))(objcT16,selTransTbl[1],self->lastsegment)); } } # 124 "runarray.m" for(j=0,p=0,n=(objcT17=self->values,(*(unsigned(*)(id,SEL))_imp(objcT17,selTransTbl[0]))(objcT17,selTransTbl[0]));jruns,(*(int(*)(id,SEL,unsigned))_imp(objcT18,selTransTbl[2]))(objcT18,selTransTbl[2],j)); if(p<=i&&i # 129 "runarray.m" laststart=p;self-> lastend=q;self-> lastsegment=j; return(objcT19=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT19,selTransTbl[1]))(objcT19,selTransTbl[1],j)); } p=q; } (objcT20=NotFound,(*_imp(objcT20,selTransTbl[9]))(objcT20,selTransTbl[9])); return(id)0; } static unsigned i_RunArray_runLengthAt_(struct RunArray_PRIVATE *self,SEL _cmd,unsigned i) { id objcT23,objcT25; # 143 "runarray.m" int j,n; unsigned p; if(i>=self->size) { id objcT21; # 148 "runarray.m" (objcT21=OutOfBounds,(*_imp(objcT21,selTransTbl[9]))(objcT21,selTransTbl[9])); return 0; } # 154 "runarray.m" if(self->laststart!= -1) { if(self->laststart<=i&&ilastend) return self->lastend-i; if(i==self->lastend) { id objcT22; self-> # 160 "runarray.m" lastsegment++;self-> laststart=self->lastend;self-> lastend=self->laststart+(objcT22=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT22,selTransTbl[2]))(objcT22,selTransTbl[2],self->lastsegment)); return self->lastend-i; } } # 169 "runarray.m" for(j=0,p=0,n=(objcT23=self->values,(*(unsigned(*)(id,SEL))_imp(objcT23,selTransTbl[0]))(objcT23,selTransTbl[0]));jruns,(*(int(*)(id,SEL,unsigned))_imp(objcT24,selTransTbl[2]))(objcT24,selTransTbl[2],j)); if(p<=i&&i laststart=p;self-> lastend=q;self-> lastsegment=j; return self->lastend-i; } p=q; } (objcT25=NotFound,(*_imp(objcT25,selTransTbl[9]))(objcT25,selTransTbl[9])); return 0; } static unsigned i_RunArray_size(struct RunArray_PRIVATE *self,SEL _cmd) { return self->size; } static id i_RunArray_calcsize(struct RunArray_PRIVATE *self,SEL _cmd) { id objcT26; # 194 "runarray.m" int i,n; int totalsize=0; (void)0; for(i=0,n=(objcT26=self->values,(*(unsigned(*)(id,SEL))_imp(objcT26,selTransTbl[0]))(objcT26,selTransTbl[0]));iruns,(*(int(*)(id,SEL,unsigned))_imp(objcT27,selTransTbl[2]))(objcT27,selTransTbl[2],i)); totalsize+=s; }self-> size=totalsize; return(id)self; } static id i_RunArray_setsize_(struct RunArray_PRIVATE *self,SEL _cmd,unsigned newsize) { if(self->size==newsize) return(id)self; if(self->sizevalues,(*(unsigned(*)(id,SEL))_imp(objcT28,selTransTbl[0]))(objcT28,selTransTbl[0])); int m=(objcT29=self->runs,(*(unsigned(*)(id,SEL))_imp(objcT29,selTransTbl[10]))(objcT29,selTransTbl[10])); if(m<(n+1)) (objcT30=self->runs,(*(id(*)(id,SEL,unsigned))_imp(objcT30,selTransTbl[11]))(objcT30,selTransTbl[11],(2*m+1))); (objcT31=self->values,(*_imp(objcT31,selTransTbl[12]))(objcT31,selTransTbl[12],(objcT32=OrdCltn,(*_imp(objcT32,selTransTbl[3]))(objcT32,selTransTbl[3])))); (objcT33=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT33,selTransTbl[13]))(objcT33,selTransTbl[13],n,(newsize-self->size)));self-> size=newsize; } else { id objcT34; # 227 "runarray.m" (objcT34=(id)self,(*(id(*)(id,SEL,SEL))_imp(objcT34,selTransTbl[14]))(objcT34,selTransTbl[14],_cmd)); } (void)0; return(id)self; } static id i_RunArray_addAttribute_to_(struct RunArray_PRIVATE *self,SEL _cmd,id attrib,id v) { id objcT35,objcT36,objcT41; # 236 "runarray.m" int n=(objcT35=v,(*(unsigned(*)(id,SEL))_imp(objcT35,selTransTbl[0]))(objcT35,selTransTbl[0])); (objcT36=attrib,(*_imp(objcT36,selTransTbl[8]))(objcT36,selTransTbl[8])); while(n--) { id objcT37,objcT38; # 241 "runarray.m" if((objcT37=attrib,(*(BOOL(*)(id,SEL,id))_imp(objcT37,selTransTbl[15]))(objcT37,selTransTbl[15],(objcT38=v,(*(id(*)(id,SEL,unsigned))_imp(objcT38,selTransTbl[1]))(objcT38,selTransTbl[1],n))))) { id objcT39,objcT40; # 243 "runarray.m" id atb=(objcT39=v,(*(id(*)(id,SEL,unsigned))_imp(objcT39,selTransTbl[16]))(objcT39,selTransTbl[16],n)); (objcT40=atb,(*_imp(objcT40,selTransTbl[7]))(objcT40,selTransTbl[7])); } } if((objcT41=attrib,(*(BOOL(*)(id,SEL))_imp(objcT41,selTransTbl[17]))(objcT41,selTransTbl[17]))) { id objcT42; # 251 "runarray.m" (objcT42=v,(*_imp(objcT42,selTransTbl[12]))(objcT42,selTransTbl[12],attrib)); } else { id objcT43; # 256 "runarray.m" (objcT43=attrib,(*_imp(objcT43,selTransTbl[7]))(objcT43,selTransTbl[7])); } return(id)self; } static id i_RunArray_breakat_(struct RunArray_PRIVATE *self,SEL _cmd,int i) { id objcT44,objcT55; # 264 "runarray.m" int j,k,p,n; for(j=0,p=0,n=(objcT44=self->values,(*(unsigned(*)(id,SEL))_imp(objcT44,selTransTbl[0]))(objcT44,selTransTbl[0]));jruns,(*(int(*)(id,SEL,unsigned))_imp(objcT45,selTransTbl[2]))(objcT45,selTransTbl[2],j)); if(p==i||q==i) return(id)self; if(pi) { id objcT46,objcT47,objcT48,objcT49,objcT50; id objcT51,objcT52,objcT53,objcT54; # 274 "runarray.m" int m=(objcT46=self->runs,(*(unsigned(*)(id,SEL))_imp(objcT46,selTransTbl[10]))(objcT46,selTransTbl[10])); id v=(objcT47=(objcT48=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT48,selTransTbl[1]))(objcT48,selTransTbl[1],j)),(*_imp(objcT47,selTransTbl[18]))(objcT47,selTransTbl[18])); if(m<(n+1)) (objcT49=self->runs,(*(id(*)(id,SEL,unsigned))_imp(objcT49,selTransTbl[11]))(objcT49,selTransTbl[11],(2*m+1))); (objcT50=self->values,(*(id(*)(id,SEL,unsigned,id))_imp(objcT50,selTransTbl[19]))(objcT50,selTransTbl[19],j,v)); k=n; while( --k>=j) (objcT51=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT51,selTransTbl[13]))(objcT51,selTransTbl[13],k+1,(objcT52=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT52,selTransTbl[2]))(objcT52,selTransTbl[2],k)))); (objcT53=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT53,selTransTbl[13]))(objcT53,selTransTbl[13],j,i-p)); (objcT54=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT54,selTransTbl[13]))(objcT54,selTransTbl[13],j+1,q-i)); return(id)self; } p=q; } return(objcT55=(id)self,(*(id(*)(id,SEL,STR,...))_imp(objcT55,selTransTbl[20]))(objcT55,selTransTbl[20],"Error in run computation")); } static id i_RunArray_addAttribute_from_size_(struct RunArray_PRIVATE *self,SEL _cmd,id attrib,unsigned p,unsigned s) { id objcT61,objcT62,objcT69,objcT70,objcT75; # 294 "runarray.m" int i; if(s==0) return(id)self; # 301 "runarray.m" if(p>=self->size) { id objcT56,objcT57,objcT58,objcT59,objcT60; # 303 "runarray.m" if(p>self->size) (objcT56=(id)self,(*(id(*)(id,SEL,unsigned))_imp(objcT56,selTransTbl[21]))(objcT56,selTransTbl[21],p)); (objcT57=(id)self,(*(id(*)(id,SEL,unsigned))_imp(objcT57,selTransTbl[21]))(objcT57,selTransTbl[21],p+s)); i=(objcT58=self->values,(*(unsigned(*)(id,SEL))_imp(objcT58,selTransTbl[0]))(objcT58,selTransTbl[0])); (void)0; return(objcT59=(id)self,(*_imp(objcT59,selTransTbl[22]))(objcT59,selTransTbl[22],attrib,(objcT60=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT60,selTransTbl[1]))(objcT60,selTransTbl[1],i-1)))); } # 313 "runarray.m" i=(objcT61=self->values,(*(unsigned(*)(id,SEL))_imp(objcT61,selTransTbl[0]))(objcT61,selTransTbl[0])); if((i!=0)&&(p+s==self->size)&&(s==(objcT62=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT62,selTransTbl[2]))(objcT62,selTransTbl[2],i-1)))) { id objcT63,objcT64; # 316 "runarray.m" return(objcT63=(id)self,(*_imp(objcT63,selTransTbl[22]))(objcT63,selTransTbl[22],attrib,(objcT64=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT64,selTransTbl[1]))(objcT64,selTransTbl[1],i-1)))); } # 322 "runarray.m" if(p+s>self->size) { id objcT65,objcT66; # 324 "runarray.m" (objcT65=(id)self,(*(id(*)(id,SEL,unsigned))_imp(objcT65,selTransTbl[21]))(objcT65,selTransTbl[21],p+s)); (objcT66=(id)self,(*(id(*)(id,SEL,int))_imp(objcT66,selTransTbl[23]))(objcT66,selTransTbl[23],p)); } else { id objcT67,objcT68; # 329 "runarray.m" (objcT67=(id)self,(*(id(*)(id,SEL,int))_imp(objcT67,selTransTbl[23]))(objcT67,selTransTbl[23],p)); (objcT68=(id)self,(*(id(*)(id,SEL,int))_imp(objcT68,selTransTbl[23]))(objcT68,selTransTbl[23],p+s)); } (objcT69=(id)self,(*_imp(objcT69,selTransTbl[8]))(objcT69,selTransTbl[8])); for(i=0;isize;i+=(objcT70=(id)self,(*(unsigned(*)(id,SEL,unsigned))_imp(objcT70,selTransTbl[24]))(objcT70,selTransTbl[24],i))) { id objcT71,objcT72,objcT73,objcT74; # 337 "runarray.m" if(i==p+s) break; if(i>p+s) (objcT71=(id)self,(*(id(*)(id,SEL,STR,...))_imp(objcT71,selTransTbl[20]))(objcT71,selTransTbl[20],"Error in run computation.")); if(i>=p) (objcT72=(id)self,(*_imp(objcT72,selTransTbl[22]))(objcT72,selTransTbl[22],(objcT73=attrib,(*_imp(objcT73,selTransTbl[25]))(objcT73,selTransTbl[25])),(objcT74=(id)self,(*(id(*)(id,SEL,unsigned))_imp(objcT74,selTransTbl[1]))(objcT74,selTransTbl[1],i)))); } (objcT75=attrib,(*_imp(objcT75,selTransTbl[7]))(objcT75,selTransTbl[7])); return(id)self; } static id i_RunArray_calcinsertsegment_(struct RunArray_PRIVATE *self,SEL _cmd,int i) { id objcT77,objcT79; # 353 "runarray.m" int j,n; unsigned p; if(i>=self->size) { id objcT76; # 358 "runarray.m" (objcT76=OutOfBounds,(*_imp(objcT76,selTransTbl[9]))(objcT76,selTransTbl[9])); return(id)0; } # 364 "runarray.m" if(self->laststart!= -1) { if(self->laststartlastend) return(id)self; } # 373 "runarray.m" for(j=0,p=0,n=(objcT77=self->values,(*(unsigned(*)(id,SEL))_imp(objcT77,selTransTbl[0]))(objcT77,selTransTbl[0]));jruns,(*(int(*)(id,SEL,unsigned))_imp(objcT78,selTransTbl[2]))(objcT78,selTransTbl[2],j)); if(p<=i&&i<=q) {self-> laststart=p;self-> lastend=q;self-> lastsegment=j; return(id)self; } p=q; } (objcT79=NotFound,(*_imp(objcT79,selTransTbl[9]))(objcT79,selTransTbl[9])); return(id)0; } static id i_RunArray_at_insert_count_(struct RunArray_PRIVATE *self,SEL _cmd,unsigned anOffset,char*aString,int n) { id objcT87; # 393 "runarray.m" if(anOffset==self->size) { id objcT80; # 395 "runarray.m" int s=(objcT80=self->runs,(*(unsigned(*)(id,SEL))_imp(objcT80,selTransTbl[0]))(objcT80,selTransTbl[0])); if(s) { id objcT81,objcT82; # 398 "runarray.m" (objcT81=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT81,selTransTbl[13]))(objcT81,selTransTbl[13],s-1,(objcT82=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT82,selTransTbl[2]))(objcT82,selTransTbl[2],s-1))+n));self-> size+=n; } else { id objcT83; # 403 "runarray.m" (objcT83=(id)self,(*(id(*)(id,SEL,unsigned))_imp(objcT83,selTransTbl[21]))(objcT83,selTransTbl[21],self->size+n)); } } else { id objcT84,objcT85,objcT86; # 408 "runarray.m" (objcT84=(id)self,(*(id(*)(id,SEL,int))_imp(objcT84,selTransTbl[26]))(objcT84,selTransTbl[26],anOffset)); (objcT85=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT85,selTransTbl[13]))(objcT85,selTransTbl[13],self->lastsegment,(objcT86=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT86,selTransTbl[2]))(objcT86,selTransTbl[2],self->lastsegment))+n));self-> size+=n; } (objcT87=(id)self,(*_imp(objcT87,selTransTbl[8]))(objcT87,selTransTbl[8])); (void)0; return(id)self; } static id i_RunArray_deleteFrom_to_(struct RunArray_PRIVATE *self,SEL _cmd,unsigned p,unsigned q) { id objcT89,objcT90,objcT91,objcT111; # 419 "runarray.m" int i,is,j,je,n; if(p>q) { id objcT88; # 423 "runarray.m" (objcT88=OutOfBounds,(*_imp(objcT88,selTransTbl[9]))(objcT88,selTransTbl[9])); return(id)0; } (void)0; n=q-p+1; (objcT89=(id)self,(*(id(*)(id,SEL,unsigned))_imp(objcT89,selTransTbl[1]))(objcT89,selTransTbl[1],p)); i=self->lastsegment; is=self->laststart; (objcT90=(id)self,(*(id(*)(id,SEL,unsigned))_imp(objcT90,selTransTbl[1]))(objcT90,selTransTbl[1],q)); j=self->lastsegment; je=self->lastend; (objcT91=(id)self,(*_imp(objcT91,selTransTbl[8]))(objcT91,selTransTbl[8])); if(i==j) { id objcT92,objcT93; # 440 "runarray.m" int m=(objcT92=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT92,selTransTbl[2]))(objcT92,selTransTbl[2],i)); (void)0; (objcT93=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT93,selTransTbl[13]))(objcT93,selTransTbl[13],i,m-n)); if(m==n) { id objcT94,objcT95,objcT96; # 446 "runarray.m" id atb=(objcT94=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT94,selTransTbl[16]))(objcT94,selTransTbl[16],i)); (objcT95=(objcT96=atb,(*_imp(objcT96,selTransTbl[6]))(objcT96,selTransTbl[6])),(*_imp(objcT95,selTransTbl[7]))(objcT95,selTransTbl[7])); } } else { id objcT97,objcT98,objcT99,objcT100,objcT101; # 454 "runarray.m" int m,k,r; m=(objcT97=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT97,selTransTbl[2]))(objcT97,selTransTbl[2],i)); (void)0; (objcT98=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT98,selTransTbl[13]))(objcT98,selTransTbl[13],i,p-is)); for(k=i+1;kruns,(*(int(*)(id,SEL,unsigned,int))_imp(objcT99,selTransTbl[13]))(objcT99,selTransTbl[13],k,0)); m=(objcT100=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT100,selTransTbl[2]))(objcT100,selTransTbl[2],j)); (void)0; (objcT101=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT101,selTransTbl[13]))(objcT101,selTransTbl[13],j,je-q-1)); r=i; if(is==p) { id objcT102,objcT103,objcT104; # 468 "runarray.m" id atb=(objcT102=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT102,selTransTbl[16]))(objcT102,selTransTbl[16],r)); (objcT103=(objcT104=atb,(*_imp(objcT104,selTransTbl[6]))(objcT104,selTransTbl[6])),(*_imp(objcT103,selTransTbl[7]))(objcT103,selTransTbl[7])); } else { r++; } for(k=i+1;kvalues,(*(id(*)(id,SEL,unsigned))_imp(objcT105,selTransTbl[16]))(objcT105,selTransTbl[16],r)); (objcT106=(objcT107=atb,(*_imp(objcT107,selTransTbl[6]))(objcT107,selTransTbl[6])),(*_imp(objcT106,selTransTbl[7]))(objcT106,selTransTbl[7])); } if(je==q+1) { id objcT108,objcT109,objcT110; # 486 "runarray.m" id atb=(objcT108=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT108,selTransTbl[16]))(objcT108,selTransTbl[16],r)); (objcT109=(objcT110=atb,(*_imp(objcT110,selTransTbl[6]))(objcT110,selTransTbl[6])),(*_imp(objcT109,selTransTbl[7]))(objcT109,selTransTbl[7])); } }self-> size-=n; (objcT111=self->runs,(*_imp(objcT111,selTransTbl[27]))(objcT111,selTransTbl[27])); (void)0; return(id)self; } static id i_RunArray_concat_(struct RunArray_PRIVATE *self,SEL _cmd,id b) { id objcT112,objcT113,objcT114,objcT115,objcT116; id objcT117,objcT118,objcT119,objcT120,objcT121; id objcT122,objcT123,objcT124; # 502 "runarray.m" int i,m,n,k; id v,r=(objcT112=b,(*_imp(objcT112,selTransTbl[28]))(objcT112,selTransTbl[28])); k=(objcT113=self->values,(*(unsigned(*)(id,SEL))_imp(objcT113,selTransTbl[0]))(objcT113,selTransTbl[0])); n=(objcT114=(objcT115=b,(*_imp(objcT115,selTransTbl[29]))(objcT115,selTransTbl[29])),(*(unsigned(*)(id,SEL))_imp(objcT114,selTransTbl[0]))(objcT114,selTransTbl[0])); for(i=0;iruns,(*(int(*)(id,SEL,unsigned,int))_imp(objcT116,selTransTbl[13]))(objcT116,selTransTbl[13],k+i,(objcT117=r,(*(int(*)(id,SEL,unsigned))_imp(objcT117,selTransTbl[2]))(objcT117,selTransTbl[2],i)))); v=(objcT118=(objcT119=b,(*_imp(objcT119,selTransTbl[29]))(objcT119,selTransTbl[29])),(*_imp(objcT118,selTransTbl[18]))(objcT118,selTransTbl[18])); (objcT120=self->values,(*_imp(objcT120,selTransTbl[30]))(objcT120,selTransTbl[30],v)); (objcT121=v,(*_imp(objcT121,selTransTbl[7]))(objcT121,selTransTbl[7])); m=(objcT122=self->runs,(*(unsigned(*)(id,SEL))_imp(objcT122,selTransTbl[10]))(objcT122,selTransTbl[10])); if(mruns,(*(id(*)(id,SEL,unsigned))_imp(objcT123,selTransTbl[11]))(objcT123,selTransTbl[11],(k+n+4)));self-> size+=(objcT124=b,(*(unsigned(*)(id,SEL))_imp(objcT124,selTransTbl[0]))(objcT124,selTransTbl[0])); (void)0; return(id)self; } static id i_RunArray_coalesce(struct RunArray_PRIVATE *self,SEL _cmd) { id objcT125; # 526 "runarray.m" int n=(objcT125=self->values,(*(unsigned(*)(id,SEL))_imp(objcT125,selTransTbl[0]))(objcT125,selTransTbl[0])); while(n--) { id objcT126,objcT127,objcT128; # 530 "runarray.m" id v,w; if(n==0) break; v=(objcT126=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT126,selTransTbl[1]))(objcT126,selTransTbl[1],n)); w=(objcT127=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT127,selTransTbl[1]))(objcT127,selTransTbl[1],n-1)); if((objcT128=v,(*(BOOL(*)(id,SEL,id))_imp(objcT128,selTransTbl[31]))(objcT128,selTransTbl[31],w))) { id objcT129,objcT130,objcT131,objcT132,objcT133; id objcT134,objcT135,objcT136; # 537 "runarray.m" id atb; unsigned p=(objcT129=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT129,selTransTbl[2]))(objcT129,selTransTbl[2],n)); unsigned q=(objcT130=self->runs,(*(int(*)(id,SEL,unsigned))_imp(objcT130,selTransTbl[2]))(objcT130,selTransTbl[2],n-1)); (objcT131=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT131,selTransTbl[13]))(objcT131,selTransTbl[13],n-1,p+q)); (objcT132=self->runs,(*(int(*)(id,SEL,unsigned,int))_imp(objcT132,selTransTbl[13]))(objcT132,selTransTbl[13],n,0)); atb=(objcT133=self->values,(*(id(*)(id,SEL,unsigned))_imp(objcT133,selTransTbl[16]))(objcT133,selTransTbl[16],n)); (objcT134=(objcT135=atb,(*_imp(objcT135,selTransTbl[6]))(objcT135,selTransTbl[6])),(*_imp(objcT134,selTransTbl[7]))(objcT134,selTransTbl[7])); (objcT136=self->runs,(*_imp(objcT136,selTransTbl[27]))(objcT136,selTransTbl[27])); } } return(id)self; } static id i_RunArray_printOn_(struct RunArray_PRIVATE *self,SEL _cmd,IOD aFile) { id objcT137,objcT138; # 556 "runarray.m" fprintf(aFile,"RunArray runs "); (objcT137=self->runs,(*(id(*)(id,SEL,IOD))_imp(objcT137,selTransTbl[32]))(objcT137,selTransTbl[32],aFile)); (objcT138=self->values,(*(id(*)(id,SEL,IOD))_imp(objcT138,selTransTbl[32]))(objcT138,selTransTbl[32],aFile)); return(id)self; } extern id Object; extern struct _SHARED _Object; extern struct _SHARED __Object; extern id Cltn; extern struct _SHARED _Cltn; extern struct _SHARED __Cltn; static struct _SLT _RunArray_clsDispatchTbl[] ={ {"new",(id (*)())c_RunArray_new}, {(char*)0,(id (*)())0} }; static struct _SLT _RunArray_nstDispatchTbl[] ={ {"reset",(id (*)())i_RunArray_reset}, {"check",(id (*)())i_RunArray_check}, {"free",(id (*)())i_RunArray_free}, {"values",(id (*)())i_RunArray_values}, {"runs",(id (*)())i_RunArray_runs}, {"runs:values:",(id (*)())i_RunArray_runs_values_}, {"at:",(id (*)())i_RunArray_at_}, {"runLengthAt:",(id (*)())i_RunArray_runLengthAt_}, {"size",(id (*)())i_RunArray_size}, {"calcsize",(id (*)())i_RunArray_calcsize}, {"setsize:",(id (*)())i_RunArray_setsize_}, {"addAttribute:to:",(id (*)())i_RunArray_addAttribute_to_}, {"breakat:",(id (*)())i_RunArray_breakat_}, {"addAttribute:from:size:",(id (*)())i_RunArray_addAttribute_from_size_}, {"calcinsertsegment:",(id (*)())i_RunArray_calcinsertsegment_}, {"at:insert:count:",(id (*)())i_RunArray_at_insert_count_}, {"deleteFrom:to:",(id (*)())i_RunArray_deleteFrom_to_}, {"concat:",(id (*)())i_RunArray_concat_}, {"coalesce",(id (*)())i_RunArray_coalesce}, {"printOn:",(id (*)())i_RunArray_printOn_}, {(char*)0,(id (*)())0} }; id RunArray = (id)&_RunArray; id *OBJCCLASS_RunArray(void) { return &RunArray; } struct _SHARED _RunArray = { (id)&__RunArray, (id)&_Cltn, "RunArray", 0, sizeof(struct RunArray_PRIVATE), 20, _RunArray_nstDispatchTbl, 41, &runarray_modDesc, 0, (id)0, &RunArray, }; id OBJCCFUNC_RunArray(void) { return (id)&_RunArray; } id OBJCCSUPER_RunArray(void) { return _RunArray.clsSuper; } struct _SHARED __RunArray = { (id)&__Object, (id)&__Cltn, "RunArray", 0, sizeof(struct _SHARED), 1, _RunArray_clsDispatchTbl, 34, &runarray_modDesc, 0, (id)0, 0, }; id OBJCMFUNC_RunArray(void) { return (id)&__RunArray; } id OBJCMSUPER_RunArray(void) { return __RunArray.clsSuper; } static char *_selTransTbl[] ={ "size", "at:", "intAt:", "new", "runs:values:", "elementsPerform:", "freeContents", "free", "reset", "signal", "capacity", "capacity:", "add:", "intAt:put:", "notImplemented:", "dominates:", "removeAt:", "set", "deepCopy", "at:insert:", "error:", "setsize:", "addAttribute:to:", "breakat:", "runLengthAt:", "copy", "calcinsertsegment:", "packContents", "runs", "values", "addAll:", "isEqual:", "printOn:", 0 }; struct modDescriptor runarray_modDesc = { "runarray", "objc3.2.8", 0L, 0, 0, &RunArray, 33, _selTransTbl, 0 }; struct modDescriptor *_OBJCBIND_runarray(void) { selTransTbl = _selTransTbl; return &runarray_modDesc; } int _OBJCPOSTLINK_runarray = 1;