/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */ /* time: July 28, 1993 10:20:30 am PDT */ /* C2C version: April 20, 1993 (sun4) */ /* ref-counting: off */ /* file: ImagerMaskCacheImpl, module: ImagerMaskCacheImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [665805338,2510502480] ImagerMaskCacheImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {word f0, f1, f2, f3;} W4; typedef W4 *W4Pt; typedef word (*fPt)(); typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7; typedef struct {word f0, f1;} W2; typedef W2 *W2Pt; typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef struct {word f0, f1, f2, f3, f4;} W5; typedef struct {W8 f; W5 r;} W13; typedef struct {W8 f; W8 r;} W16; typedef W16 *W16Pt; typedef struct {word f0, f1, f2;} W3; typedef struct {word f0, f1, f2, f3, f4, f5;} W6; typedef struct {W16 f; W16 r;} W32; typedef struct {W32 f; W32 r;} W64; typedef struct {W64 f; W64 r;} W128; typedef struct {W128 f; W128 r;} W256; typedef W256 *W256Pt; #define SOURCE(p, l) /* source p, l */ static float fc25 = 0.10; static float fc26 = 1.2; #define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i ) #define IOP2(op, x, y) ( (word) ((x) op (y)) ) #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) ) #define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) ) #define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) ) static float fc108 = 1.0; static float fc109 = 0.0; static float fc110 = 2000.0; static void NoName←Q3384(); static void ImagerMaskCacheImpl←P0(); static word BitmapFromCharMask←P120(); static void boxGenerator←P1884(); static void BoxesFromCharMask←P180(); static word RasterCharMaskFromManhattan←P240(); static word RasterCharMaskFromSampleMap←P300(); static word RunsCharMaskFromManhattan←P360(); static void AppendRun←P2376(); static word CountRuns←P420(); static word NewGeneration←P480(); static word Create←P540(); static word Occupancy←P600(); static word Size←P660(); static word Fetch←P720(); static word HashCharAndFont←P780(); static word FetchInternal←P840(); static word GetParameters←P900(); static void UpdateParameters←P960(); static word NoName←Q3444(); static void Store←P1020(); static word StoreInternal←P1080(); static void Dillon←P1140(); static void EraseInternal←P1200(); static void Launder←P1260(); static void Flush←P1320(); static word GetList←P1380(); static word GetNamedCache←P1440(); static void SetNamedCacheParameters←P1500(); static void FlushAll←P1560(); static word epa←P3024(); static word ObtainSmallCache←P1620(); static void ReleaseSmallCache←P1680(); static void NoName←Q3504(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\047\257\142\032\300\225\243\072\120\101\050\000\000"}; static struct {unsigned f; char r[4];} string2 = {196611, "\004C0"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\254\224\163\216\300\143\061\230\115\100\214\000\000"}; static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"}; static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\047\257\142\032\300\225\243\072\120\101\064\000\000"}; static struct {unsigned f; char r[12];} string6 = {524296, "\011\000\004\040\040\000\010\001\000\000\000"}; static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\254\224\163\216\300\143\061\230\115\101\174\000\000"}; static struct {unsigned f; char r[4];} string8 = {131074, "\003\017\000"}; static struct {unsigned f; char r[24];} string9 = {1310744, "\205\210\242\000\100\377\216\257\300\254\224\163\216\300\143\061\230\115\100\260\000\000\000"}; static struct {unsigned f; char r[8];} string10 = {393222, "\010\000\004A\000\001\000"}; static struct {unsigned f; char r[44];} string11 = {2752556, "\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261\000"}; static struct {unsigned f; char r[104];} string12 = {6684776, "\260\006\005\146\151\162\163\164\216\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261\005\004\162\145\163\164\214\216\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261\261\000"}; static struct {unsigned f; char r[4];} string13 = {131074, "\004\003\000"}; static struct {unsigned f; char r[48];} string14 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\254\224\163\216\300\143\061\230\115\100\214\005\004\162\145\163\164\214\216\257\300\254\224\163\216\300\143\061\230\115\100\214\261\000\000\000"}; static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\047\257\142\032\300\225\243\072\120\100\200\000\000"}; static struct {unsigned f; char r[4];} string16 = {196611, "\004A0"}; static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\350\311\135\367\300\362\215\374\250\100\150\000\000"}; static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"}; static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\041\257\203\366\300\322\161\356\007\100\150\000\000"}; static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\243\162\130\311\300\344\000\142\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\254\224\163\216\300\143\061\230\115\100\150\000\000"}; static struct {unsigned f; char r[28];} string24 = {1638428, "\211\015\014\115\141\163\153\103\141\143\150\145\122\145\160\300\254\224\163\216\300\143\061\230\115\000\000"}; static struct { word f0[27]; word f27; word f28; word f29; word f30; word f31; word f32; word f33; word f34; word f35; word f36; word f37; word f38; word f39; word f40; word f41; word f42; word f43; word f44; word f45; word f46; word f47; word f48; word f49; word f50; word f51; word f52; word f53; word f54; word f55; word f56; word f57; word f58; word f59; word f60; word f61; word f62; word f63; word f64; word f65; word f66; word f67; word f68; word f69; word f70; word f71; word f72; word f73; word f74; word f75; word f76; word f77; word f78; word f79; word f80; word f81; word f82[16]; } globalframe = { {0}, (word) ReleaseSmallCache←P1680, 0, (word) ObtainSmallCache←P1620, 0, (word) FlushAll←P1560, 0, (word) SetNamedCacheParameters←P1500, 0, (word) GetNamedCache←P1440, 0, (word) GetList←P1380, 0, (word) Flush←P1320, 0, (word) Launder←P1260, 0, (word) EraseInternal←P1200, 0, (word) Dillon←P1140, 0, (word) StoreInternal←P1080, 0, (word) Store←P1020, 0, (word) UpdateParameters←P960, 0, (word) GetParameters←P900, 0, (word) FetchInternal←P840, 0, (word) HashCharAndFont←P780, 0, (word) Fetch←P720, 0, (word) Size←P660, 0, (word) Occupancy←P600, 0, (word) Create←P540, 0, (word) NewGeneration←P480, 0, (word) CountRuns←P420, 0, (word) RunsCharMaskFromManhattan←P360, 0, (word) RasterCharMaskFromSampleMap←P300, 0, (word) RasterCharMaskFromManhattan←P240, 0, (word) BoxesFromCharMask←P180, 0, (word) BitmapFromCharMask←P120, 0, (word) ImagerMaskCacheImpl←P0, {0} }; static void NoName←Q3384() { register ptr gf←c0259 = (ptr) &globalframe; word var←c24440; (* (( (ptr) gf←c0259)+11) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf←c0259)+15) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4); (* (( (ptr) gf←c0259)+18) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6); (* (( (ptr) gf←c0259)+19) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8); (* (( (ptr) gf←c0259)+20) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10); (* (( (ptr) gf←c0259)+21) ) = (word) XR←GetTypeIndexS((word) (&string11)); (* (( (ptr) gf←c0259)+22) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13); (* (( (ptr) gf←c0259)+25) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string13); (void) XR←DeclareGlobalFrame((word) "ImagerMaskCacheImpl", &globalframe, (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16) , (word) (( (bPt) gf←c0259)+324)/* var←c21656 */ ); var←c24440 = (word) XR←ImportInterface((word) "ImagerManhattan", (word) XR←GetTypeIndexS((word) (&string17)), 24); (* (( (ptr) gf←c0259)+94)/* var←c23096 */ ) = var←c24440; (void) XR←ImportProcS(var←c24440, 790275); var←c24440 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string18)), 60); (* (( (ptr) gf←c0259)+93)/* var←c22072 */ ) = var←c24440; (void) XR←ImportProcS(var←c24440, 2370822); (void) XR←ImportProcS(var←c24440, 1847300); (void) XR←ImportProcS(var←c24440, 268801); (void) XR←ImportProcS(var←c24440, 538626); (void) XR←ImportProcS(var←c24440, 68425474); (void) XR←ImportProcS(var←c24440, 1062404); (void) XR←ImportProcS(var←c24440, 273409); (void) XR←ImportProcS(var←c24440, 68685571); (void) XR←ImportProcS(var←c24440, 70259976); var←c24440 = (word) XR←ImportInterface((word) "ImagerSys", (word) XR←GetTypeIndexS((word) (&string19)), 15); (* (( (ptr) gf←c0259)+95)/* var←c23256 */ ) = var←c24440; (void) XR←ImportProcS(var←c24440, 68158210); (void) XR←ImportProcS(var←c24440, 67372033); var←c24440 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string20)), 11); (* (( (ptr) gf←c0259)+96)/* var←c23896 */ ) = var←c24440; (void) XR←ImportProcS(var←c24440, 67371777); var←c24440 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string21)), 16); (* (( (ptr) gf←c0259)+91)/* var←c21816 */ ) = var←c24440; (void) XR←ImportProcS(var←c24440, 67635458); (void) XR←ImportProcS(var←c24440, 67896579); (void) XR←ImportProcS(var←c24440, 134742786); (void) XR←ImportProcS(var←c24440, 67895555); var←c24440 = (word) XR←ImportInterface((word) "SF", (word) XR←GetTypeIndexS((word) (&string22)), 19); (* (( (ptr) gf←c0259)+92)/* var←c21880 */ ) = var←c24440; (void) XR←ImportProcS(var←c24440, 68161025); (void) XR←ImportProcS(var←c24440, 68160769); (void) XR←ImportProcS(var←c24440, 135266818); (void) XR←ImportProcS(var←c24440, 135270145); var←c24440 = (word) XR←ExportInterface((word) "ImagerMaskCache", (word) XR←GetTypeIndexS((word) (&string23)), 21); (* (( (ptr) gf←c0259)+97)/* var←c24472 */ ) = var←c24440; (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+316)/* var←c21624 */ , 67371009, (word) "BitmapFromCharMask") ; (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+308)/* var←c21592 */ , 2097412, (word) "BoxesFromCharMask"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+292)/* var←c21528 */ , 67371521, (word) "RasterCharMaskFromSampleMap") ; (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+300)/* var←c21560 */ , 68420354, (word) "RasterCharMaskFromManhattan") ; (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+284)/* var←c21496 */ , 68682755, (word) "RunsCharMaskFromManhattan") ; (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+276)/* var←c21464 */ , 67372289, (word) "CountRuns"); (void) XR←ExportType((word) "MaskCacheRep", (word) XR←GetTypeIndexS((word) (&string24)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2) ); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+260)/* var←c21400 */ , 71304961, (word) "Create"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+244)/* var←c21336 */ , 67373057, (word) "Size"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+236)/* var←c21304 */ , 67897603, (word) "Fetch"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+212)/* var←c21208 */ , 67373569, (word) "GetParameters"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+204)/* var←c21176 */ , 527106, (word) "UpdateParameters"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+196)/* var←c21144 */ , 527362, (word) "Store"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+156)/* var←c20984 */ , 265473, (word) "Flush"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+164)/* var←c21016 */ , 527874, (word) "Launder"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+148)/* var←c20952 */ , 67374849, (word) "GetList"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+140)/* var←c20920 */ , 67375105, (word) "GetNamedCache"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+132)/* var←c20888 */ , 4460802, (word) "SetNamedCacheParameters") ; (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+124)/* var←c20856 */ , 4608, (word) "FlushAll"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+116)/* var←c20824 */ , 67375873, (word) "ObtainSmallCache"); (void) XR←ExportProcS(var←c24440, (word) (( (bPt) gf←c0259)+108)/* var←c20792 */ , 529410, (word) "ReleaseSmallCache"); } static void ImagerMaskCacheImpl←P0(formal←c048, formal←c047) word formal←c048; word formal←c047; { register ptr gf←c24504 = (ptr) &globalframe; /* ImagerMaskCacheImpl: */ SOURCE(527, 12564) (* (( (ptr) gf←c24504)+87) ) = 2147483648; (* (( (ptr) gf←c24504)+88) ) = 2147483648; (* (( (ptr) gf←c24504)+89) ) = 2147483647; (* (( (ptr) gf←c24504)+90) ) = 2147483647; SOURCE(6322, 80) (* (( (ptr) gf←c24504)+4)/* nullCharMask←v3364 */ ) = (word) RasterCharMaskFromManhattan←P240(0, (* (W4Pt) (( (ptr) gf←c24504)+83) /* var←c21720 */ )); SOURCE(6404, 46) (* (( (ptr) gf←c24504)+5)/* emptyGeneration←v3392 */ ) = (word) NewGeneration←P480(0); SOURCE(9999, 24) (* (( (ptr) gf←c24504)+6)/* discardRate←v3756 */ ) = (* (ptr) &fc25 ); SOURCE(10088, 24) (* (( (ptr) gf←c24504)+7)/* growthFactor←v3784 */ ) = (* (ptr) &fc26 ); SOURCE(12138, 38) { word pd27; pd27 = (* (( (ptr) (* (( (ptr) gf←c24504)+91)/* var←c21816 */ ))+5) ); (* (( (ptr) gf←c24504)+8)/* cacheTab←v4008 */ ) = (word) ( *( (fPt) ((* (ptr) pd27 ))))(17, 0, 0, pd27); }; SOURCE(12325, 35) (* (( (ptr) gf←c24504)+9)/* smallCacheFailLimit←v4064 */ ) = 500; } static word BitmapFromCharMask←P120(formal←c0298) word formal←c0298; { W7 var←c24536; /* declaration of charMask←v4356 skipped */ register ptr gf←c24568 = (ptr) &globalframe; word var←c4400; /* declaration of var←c21848 skipped */ W2 size←v8060; var←c24536.f4/* charMask←v4356 */ = formal←c0298; /* BitmapFromCharMask: */ SOURCE(1244, 888) { word tmpAddr28; tmpAddr28 = (word) (( (ptr) &var←c24536)+5)/* var←c21848 */ ; (* (ptr) tmpAddr28 ) = ( ((word) (fPt) boxGenerator←P1884) ); (* (( (ptr) tmpAddr28) + 1) ) = 1; }; SOURCE(1334, 36) { word pd29; pd29 = (* (( (ptr) (* (( (ptr) gf←c24568)+92)/* var←c21880 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd29 ))))((word) &size←v8060, (* (W4Pt) (( (ptr) var←c24536.f4/* charMask←v4356 */ )+4) ), pd29) ; }; SOURCE(1372, 760) { word var←c21912; var←c21912 = var←c24536.f4/* charMask←v4356 */ ; if ((var←c21912 == 0)) { goto lab←L100000; }; if (((* (( (ptr) var←c21912)+9) ) == 0)) { { word raster←v8104; raster←v8104 = var←c21912; SOURCE(1440, 330) { word wordsPerLine←v8160; word bitmap←v8188; SOURCE(1442, 61) wordsPerLine←v8160 = ((word) (size←v8060.f1 + 31) >> 5); SOURCE(1505, 247) { word var←c21944; { word raster←v20696; raster←v20696 = raster←v8104; SOURCE(1172, 68) var←c21944 = (raster←v20696 + 44); }; { W2 var←c22008; W2 var←c22040; var←c22008.f0 = var←c21944; var←c22008.f1 = 0; var←c22040.f0 = 0; var←c22040.f1 = 0; { word pd30; word idx31; pd30 = (* (( (ptr) (* (( (ptr) gf←c24568)+93)/* var←c22072 */ ))+25) ); bitmap←v8188 = (word) ( *( (fPt) ((* (ptr) pd30 ))))(size←v8060, 1, ( /*1*/ idx31 = (word) ((word) wordsPerLine←v8160 << 5), /*1*/ SGNCK(idx31) /*1*/ ), var←c22008, raster←v8104, IOP2( * , (int)wordsPerLine←v8160, (int)size←v8060.f0) , var←c22040, (* (W2Pt) (( (ptr) var←c24536.f4/* charMask←v4356 */ )+4) ), pd30); }; }; }; SOURCE(1754, 16) return(bitmap←v8188); }; }; } else { lab←L100000: ; SOURCE(1784, 348) { word bitmap←v8232; SOURCE(1786, 95) { word pd32; pd32 = (* (( (ptr) (* (( (ptr) gf←c24568)+93)/* var←c22072 */ ))+19) ); bitmap←v8232 = (word) ( *( (fPt) ((* (ptr) pd32 ))))((* (W4Pt) (( (ptr) var←c24536.f4/* charMask←v4356 */ )+4) ), 1, 0, pd32) ; }; SOURCE(2020, 26) { word pd33; pd33 = (* (( (ptr) (* (( (ptr) gf←c24568)+93)/* var←c22072 */ ))+48) ); (void) ( *( (fPt) ((* (ptr) pd33 ))))(bitmap←v8232, pd33); }; SOURCE(2048, 66) { word pd34; pd34 = (* (( (ptr) (* (( (ptr) gf←c24568)+93)/* var←c22072 */ ))+58) ); (void) ( *( (fPt) ((* (ptr) pd34 ))))(bitmap←v8232, (word) (( (bPt) &var←c24536)+20)/* var←c21848 */ , 1, 0, pd34); }; SOURCE(2116, 16) return(bitmap←v8232); }; }; }; } static void boxGenerator←P1884(boxAction←v8336, formal←c24632) word boxAction←v8336; word formal←c24632; { register ptr gf←c24600 = (ptr) &globalframe; formal←c24632 = (formal←c24632 - 20); /* boxGenerator: */ SOURCE(1883, 42) SOURCE(1954, 61) { W2 var←c22104; var←c22104.f0 = 0; var←c22104.f1 = 0; (void) BoxesFromCharMask←P180((* (( (ptr) formal←c24632)+4) ), boxAction←v8336, var←c22104, (* (W4Pt) (( (ptr) gf←c24600)+87) /* var←c21784 */ )); }; } static void BoxesFromCharMask←P180(charMask←v4460, boxAction←v4488, delta←v4516, clip←v4544) word charMask←v4460; word boxAction←v4488; W2 delta←v4516; W4 clip←v4544; { register ptr gf←c24664 = (ptr) &globalframe; /* BoxesFromCharMask: */ SOURCE(2138, 1218) SOURCE(2248, 1108) { word var←c22136; var←c22136 = charMask←v4460; if ((var←c22136 == 0)) { goto lab←L100002; }; { word var←c22392; var←c22392 = (* (( (ptr) var←c22136)+9) ); if ((var←c22392 == 0)) { { word raster←v8364; raster←v8364 = var←c22136; SOURCE(2316, 565) { W2 size←v8420; word wordsPerLine←v8448; word bitmap←v8476; word clipped←v8504; SOURCE(2318, 36) { word pd35; pd35 = (* (( (ptr) (* (( (ptr) gf←c24664)+92)/* var←c21880 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd35 ))))((word) &size←v8420, (* (W4Pt) (( (ptr) charMask←v4460)+4) ), pd35); }; SOURCE(2356, 61) wordsPerLine←v8448 = ((word) (size←v8420.f1 + 31) >> 5); SOURCE(2419, 262) { word var←c22168; W2 var←c22232; { word raster←v20648; raster←v20648 = raster←v8364; SOURCE(1172, 68) var←c22168 = (raster←v20648 + 44); }; { word pd36; pd36 = (* (( (ptr) (* (( (ptr) gf←c24664)+92)/* var←c21880 */ ))+6) ); (void) ( *( (fPt) ((* (ptr) pd36 ))))((word) &var←c22232, (* (W2Pt) (( (ptr) charMask←v4460)+4) ), delta←v4516, pd36); }; { W2 var←c22264; W2 var←c22296; var←c22264.f0 = var←c22168; var←c22264.f1 = 0; var←c22296.f0 = 0; var←c22296.f1 = 0; { word pd37; word idx38; pd37 = (* (( (ptr) (* (( (ptr) gf←c24664)+93)/* var←c22072 */ ))+25) ); bitmap←v8476 = (word) ( *( (fPt) ((* (ptr) pd37 ))))(size←v8420, 1, ( /*1*/ idx38 = (word) ((word) wordsPerLine←v8448 << 5), /*1*/ SGNCK(idx38) /*1*/ ), var←c22264, raster←v8364, IOP2( * , (int)wordsPerLine←v8448, (int)size←v8420.f0) /*1*/ , var←c22296, var←c22232, pd37); }; }; }; SOURCE(2683, 65) { word pd39; pd39 = (* (( (ptr) (* (( (ptr) gf←c24664)+93)/* var←c22072 */ ))+27) ); clipped←v8504 = (word) ( *( (fPt) ((* (ptr) pd39 ))))(bitmap←v8476, clip←v4544, pd39); }; SOURCE(2750, 48) { word pd40; pd40 = (* (( (ptr) (* (( (ptr) gf←c24664)+93)/* var←c22072 */ ))+60) ); (void) ( *( (fPt) ((* (ptr) pd40 ))))(clipped←v8504, boxAction←v4488, pd40); }; SOURCE(2800, 38) { word pd41; pd41 = (* (( (ptr) (* (( (ptr) gf←c24664)+93)/* var←c22072 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd41 ))))(bitmap←v8476, pd41); }; SOURCE(2840, 39) { word pd42; pd42 = (* (( (ptr) (* (( (ptr) gf←c24664)+93)/* var←c22072 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd42 ))))(clipped←v8504, pd42); }; }; }; } else { if ((var←c22392 == 1)) { { word runGroup←v8548; runGroup←v8548 = var←c22136; SOURCE(2918, 449) { word s0←v8604; word f0←v8632; word s←v8660; SOURCE(2920, 45) s0←v8604 = (delta←v4516.f0 + (* (( (ptr) charMask←v4460)+4) )); SOURCE(2967, 45) f0←v8632 = (delta←v4516.f1 + (* (( (ptr) charMask←v4460)+5) )); SOURCE(3014, 15) s←v8660 = s0←v8604; SOURCE(3031, 325) { register word i←v8704 = 0; register word noName←c22328; noName←c22328 = (* (( (ptr) runGroup←v8548)+10) ); if ((i←v8704 >= noName←c22328)) { goto lab←L100004; }; lab←L100007: ; if (( (int)s←v8660 < (int)clip←v4544.f2)) { } else { goto lab←L100004; }; { word r←v8748; SOURCE(3089, 36) { /*1*/ word limit43; /*1*/ r←v8748 = (* ((( (ptr) runGroup←v8548)+11)+( /*1*/ limit43 = (* (( (ptr) runGroup←v8548)+10) ), /*1*/ BCK(i←v8704, limit43) /*1*/ )) ); /*1*/ }; SOURCE(3127, 197) if (( (int)s←v8660 >= (int)clip←v4544.f0)) { SOURCE(3151, 175) /*1*/ { /*1*/ word fMin←v8792; /*1*/ word fMax←v8820; SOURCE(3153, 47) /*1*/ { /*1*/ word x44; /*1*/ word x45; /*1*/ fMin←v8792 = (x44 = ( (unsigned) ((unsigned)r←v8748 >> 16) + f0←v8632), /*1*/ x45 = clip←v4544.f1, /*1*/ MAX((int)(word), x44, x45)); /*1*/ }; SOURCE(3202, 55) /*1*/ { /*1*/ word x46; /*1*/ word x47; /*1*/ fMax←v8820 = (x46 = (( (unsigned) ((unsigned)r←v8748 >> 16) + (unsigned) ( (((unsigned)r←v8748 << 17) >> 17) )) + f0←v8632), /*1*/ x47 = clip←v4544.f3, /*1*/ MIN((int)(word), x46, x47)); /*1*/ }; SOURCE(3259, 65) /*1*/ if (( (int)fMax←v8820 > (int)fMin←v8792)) { SOURCE(3279, 45) /*1*/ { /*1*/ W4 var←c22360; /*1*/ var←c22360.f0 = s←v8660; /*1*/ var←c22360.f1 = fMin←v8792; /*1*/ var←c22360.f2 = (s←v8660 + 1); /*1*/ var←c22360.f3 = fMax←v8820; /*1*/ (void) ( *( (fPt) ((* (ptr) boxAction←v4488 ))))(var←c22360, boxAction←v4488); /*1*/ }; /*1*/ }; /*1*/ }; /*1*/ }; SOURCE(3329, 27) if (r←v8748 & 0100000) { SOURCE(3347, 9) /*1*/ s←v8660 = (s←v8660 + 1); /*1*/ }; }; i←v8704 = (i←v8704 + 1); if ((i←v8704 < noName←c22328)) { goto lab←L100007; }; lab←L100004: ; }; }; }; } else { lab←L100002: ; }; }; }; }; } static word RasterCharMaskFromManhattan←P240(p←v4604, bb←v4632) word p←v4604; W4 bb←v4632; { register ptr gf←c24696 = (ptr) &globalframe; word var←c4676; word rast←v8864; word bitmapWords←v8892; /* RasterCharMaskFromManhattan: */ SOURCE(3391, 702) SOURCE(3510, 63) { word pd48; pd48 = (* (( (ptr) (* (( (ptr) gf←c24696)+92)/* var←c21880 */ ))+17) ); rast←v8864 = ((word) ((word) ( *( (fPt) ((* (ptr) pd48 ))))(bb←v4632, pd48) + 31) >> 5); }; SOURCE(3575, 36) { word pd49; word idx50; pd49 = (* (( (ptr) (* (( (ptr) gf←c24696)+92)/* var←c21880 */ ))+18) ); bitmapWords←v8892 = ( idx50 = (word) ((word) ( *( (fPt) ((* (ptr) pd49 ))))(bb←v4632, pd49) * rast←v8864), SGNCK(idx50) ); }; SOURCE(3613, 480) if (( (int)bitmapWords←v8892 > (int)32000)) { SOURCE(3641, 26) return(0); } else { SOURCE(3667, 428) { word mask←v8936; word bits←v8964; SOURCE(3669, 72) { word var←c22424; word var←c22456; word var←c22488; var←c22424 = SGNCK(bitmapWords←v8892); var←c22456 = ((word) var←c22424 << 2); var←c22488 = XR←NewObject((44 + var←c22456), (* (( (ptr) gf←c24696)+15) )); (* (( (ptr) var←c22488)+10) ) = var←c22424; mask←v8936 = var←c22488; }; SOURCE(3743, 207) { W2 var←c22520; word var←c22552; { word pd51; pd51 = (* (( (ptr) (* (( (ptr) gf←c24696)+92)/* var←c21880 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd51 ))))((word) &var←c22520, bb←v4632, pd51); }; { word raster←v20600; raster←v20600 = mask←v8936; SOURCE(1172, 68) var←c22552 = (raster←v20600 + 44); }; { W2 var←c22616; W2 var←c22648; var←c22616.f0 = var←c22552; var←c22616.f1 = 0; var←c22648.f0 = 0; var←c22648.f1 = 0; { word pd52; word idx53; pd52 = (* (( (ptr) (* (( (ptr) gf←c24696)+93)/* var←c22072 */ ))+25) ); bits←v8964 = (word) ( *( (fPt) ((* (ptr) pd52 ))))(var←c22520, 1, ( idx53 = (word) ((word) rast←v8864 << 5), SGNCK(idx53) ), var←c22616, mask←v8936, bitmapWords←v8892 , var←c22648, (* (W2Pt) &bb←v4632 ), pd52); }; }; }; SOURCE(3952, 13) (* (W4Pt) (( (ptr) mask←v8936)+4) ) = bb←v4632; SOURCE(3967, 64) lab←L100011: ; if ((p←v4604 != 0)) { } else { goto lab←L100009; }; SOURCE(3984, 35) { word pd54; pd54 = (* (( (ptr) (* (( (ptr) gf←c24696)+93)/* var←c22072 */ ))+52) ); (void) ( *( (fPt) ((* (ptr) pd54 ))))(bits←v8964, (* (W4Pt) p←v4604 ), 1, 0, pd54); }; SOURCE(4021, 10) p←v4604 = (* (( (ptr) p←v4604)+4) ); goto lab←L100011; lab←L100009: ; SOURCE(4042, 36) { word pd55; pd55 = (* (( (ptr) (* (( (ptr) gf←c24696)+93)/* var←c22072 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd55 ))))(bits←v8964, pd55); }; SOURCE(4080, 13) return(mask←v8936); }; }; } static word RasterCharMaskFromSampleMap←P300(map←v4748) word map←v4748; { register ptr gf←c24728 = (ptr) &globalframe; word var←c4792; W4 bb←v9020; word rast←v9048; word bitmapWords←v9076; /* RasterCharMaskFromSampleMap: */ SOURCE(4102, 761) SOURCE(4210, 37) bb←v9020 = (* (W4Pt) map←v4748 ); SOURCE(4249, 63) { word pd56; pd56 = (* (( (ptr) (* (( (ptr) gf←c24728)+92)/* var←c21880 */ ))+17) ); rast←v9048 = ((word) ((word) ( *( (fPt) ((* (ptr) pd56 ))))(bb←v9020, pd56) + 31) >> 5); }; SOURCE(4314, 42) { word pd57; word idx58; pd57 = (* (( (ptr) (* (( (ptr) gf←c24728)+92)/* var←c21880 */ ))+18) ); bitmapWords←v9076 = ( idx58 = (word) ((word) ( *( (fPt) ((* (ptr) pd57 ))))(bb←v9020, pd57) * rast←v9048), SGNCK(idx58) ); }; SOURCE(4358, 505) if (( (int)bitmapWords←v9076 > (int)32000)) { SOURCE(4386, 26) return(0); } else { SOURCE(4412, 453) { word mask←v9120; word bits←v9148; SOURCE(4414, 72) { word var←c22680; word var←c22712; word var←c22744; var←c22680 = SGNCK(bitmapWords←v9076); var←c22712 = ((word) var←c22680 << 2); var←c22744 = XR←NewObject((44 + var←c22712), (* (( (ptr) gf←c24728)+15) )); (* (( (ptr) var←c22744)+10) ) = var←c22680; mask←v9120 = var←c22744; }; SOURCE(4488, 207) { W2 var←c22776; word var←c22808; { word pd59; pd59 = (* (( (ptr) (* (( (ptr) gf←c24728)+92)/* var←c21880 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd59 ))))((word) &var←c22776, bb←v9020, pd59); }; { word raster←v20552; raster←v20552 = mask←v9120; SOURCE(1172, 68) var←c22808 = (raster←v20552 + 44); }; { W2 var←c22872; W2 var←c22904; var←c22872.f0 = var←c22808; var←c22872.f1 = 0; var←c22904.f0 = 0; var←c22904.f1 = 0; { word pd60; word idx61; pd60 = (* (( (ptr) (* (( (ptr) gf←c24728)+93)/* var←c22072 */ ))+25) ); bits←v9148 = (word) ( *( (fPt) ((* (ptr) pd60 ))))(var←c22776, 1, ( idx61 = (word) ((word) rast←v9048 << 5), SGNCK(idx61) ), var←c22872, mask←v9120, bitmapWords←v9076 , var←c22904, (* (W2Pt) &bb←v9020 ), pd60); }; }; }; SOURCE(4697, 13) (* (W4Pt) (( (ptr) mask←v9120)+4) ) = bb←v9020; SOURCE(4712, 98) { W2 var←c22936; { word pd62; pd62 = (* (( (ptr) (* (( (ptr) gf←c24728)+92)/* var←c21880 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd62 ))))((word) &var←c22936, bb←v9020, pd62); }; { word pd63; pd63 = (* (( (ptr) (* (( (ptr) gf←c24728)+93)/* var←c22072 */ ))+49) ); (void) ( *( (fPt) ((* (ptr) pd63 ))))(bits←v9148, map←v4748, (* (W2Pt) &bb←v9020 ), (* (W2Pt) &bb←v9020 ), var←c22936, 0, pd63) ; }; }; SOURCE(4812, 36) { word pd64; pd64 = (* (( (ptr) (* (( (ptr) gf←c24728)+93)/* var←c22072 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd64 ))))(bits←v9148, pd64); }; SOURCE(4850, 13) return(mask←v9120); }; }; } static word RunsCharMaskFromManhattan←P360(p←v4864, formal←c0299, nRuns←v4920) word p←v4864; W4 formal←c0299; word nRuns←v4920; { W13 var←c24760; /* declaration of bb←v4892 skipped */ register ptr gf←c24792 = (ptr) &globalframe; /* declaration of mask←v4964 skipped */ /* declaration of var←c22968 skipped */ /* declaration of i←v9204 skipped */ /* declaration of s←v9232 skipped */ (* (W4Pt) (( (ptr) &var←c24760)+4)/* bb←v4892 */ ) = formal←c0299; /* RunsCharMaskFromManhattan: */ SOURCE(4872, 780) { word tmpAddr65; tmpAddr65 = (word) (( (ptr) &var←c24760)+9)/* var←c22968 */ ; (* (ptr) tmpAddr65 ) = ( ((word) (fPt) AppendRun←P2376) ); (* (( (ptr) tmpAddr65) + 1) ) = 1; }; SOURCE(4872, 780) (* (( (ptr) &var←c24760)+8)/* mask←v4964 */ ) = 0; SOURCE(5005, 10) (* (( (ptr) &var←c24760)+11)/* i←v9204 */ ) = 0; SOURCE(5017, 10) (* (( (ptr) &var←c24760)+12)/* s←v9232 */ ) = 0; { word var←c23128; SOURCE(5388, 46) if (( (int)nRuns←v4920 == (int)0) || ( (int)nRuns←v4920 > (int)4000)) { SOURCE(5422, 12) return(0); }; SOURCE(5436, 35) { word var←c23000; word var←c23032; word var←c23064; var←c23000 = SGNCK(nRuns←v4920); var←c23032 = ((word) var←c23000 << 2); var←c23064 = XR←NewObject((44 + var←c23032), (* (( (ptr) gf←c24792)+15) )); (* (( (ptr) var←c23064)+10) ) = var←c23000; (* (( (ptr) var←c23064)+9) ) = 1; (* (( (ptr) &var←c24760)+8)/* mask←v4964 */ ) = var←c23064; }; SOURCE(5473, 13) (* (W4Pt) (( (ptr) (* (( (ptr) &var←c24760)+8)/* mask←v4964 */ ))+4) ) = (* (W4Pt) (( (ptr) &var←c24760)+4)/* bb←v4892 */ ); SOURCE(5488, 65) { word pd66; pd66 = (* (( (ptr) (* (( (ptr) gf←c24792)+94)/* var←c23096 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd66 ))))(p←v4864, (word) (( (bPt) &var←c24760)+36)/* var←c22968 */ , 1, pd66); }; SOURCE(5555, 16) if (( (int)(* (( (ptr) &var←c24760)+11)/* i←v9204 */ ) != (int)nRuns←v4920)) { SOURCE(5571, 5) (void) XR←RaiseUnnamedError(); }; SOURCE(5578, 43) { word pd67; pd67 = (* (( (ptr) (* (( (ptr) gf←c24792)+92)/* var←c21880 */ ))+18) ); if ((((* (( (ptr) &var←c24760)+12)/* s←v9232 */ ) + 1) != (word) ( *( (fPt) ((* (ptr) pd67 ))))((* (W4Pt) ((( (ptr) (* ( ( (ptr) &var←c24760)+8)/* mask←v4964 */ ))+4)) ), pd67))) { SOURCE(5621, 5) (void) XR←RaiseUnnamedError(); }; }; SOURCE(5628, 24) { word limit68; var←c23128 = ((* (( (ptr) &var←c24760)+11)/* i←v9204 */ ) - 1); (* (((( (ptr) (* (( (ptr) &var←c24760)+8)/* mask←v4964 */ ))+11)+( limit68 = (* (( (ptr) (* (( (ptr) &var←c24760)+8)/* mask←v4964 */ ))+10) ), BCK(var←c23128, limit68) ))) ) |= 32768; }; }; SOURCE(4872, 780) return((* (( (ptr) &var←c24760)+8)/* mask←v4964 */ )); } static void AppendRun←P2376(box←v9336, formal←c24856) W4 box←v9336; word formal←c24856; { register ptr gf←c24824 = (ptr) &globalframe; word check←v9364; word smin←v9392; word fmin←v9420; formal←c24856 = (formal←c24856 - 36); /* AppendRun: */ SOURCE(5029, 354) SOURCE(5063, 29) { word pd69; word idx70; pd69 = (* (( (ptr) (* (( (ptr) gf←c24824)+92)/* var←c21880 */ ))+18) ); check←v9364 = ( idx70 = (word) ((word) ( *( (fPt) ((* (ptr) pd69 ))))(box←v9336, pd69) - 1), BCK(idx70, 1) ); }; SOURCE(5094, 30) { word idx71; smin←v9392 = ( idx71 = (word) (box←v9336.f0 - (* (( (ptr) formal←c24856)+4) )), SGNCK(idx71) ); }; SOURCE(5126, 30) { word idx72; fmin←v9420 = ( idx72 = (word) (box←v9336.f1 - (* (( (ptr) formal←c24856)+5) )), SGNCK(idx72) ); }; SOURCE(5158, 140) if ((smin←v9392 != (* (( (ptr) formal←c24856)+12) ))) { { word var←c23160; SOURCE(5177, 24) { word limit73; var←c23160 = ((* (( (ptr) formal←c24856)+11) ) - 1); (* (((( (ptr) (* (( (ptr) formal←c24856)+8) ))+11)+( limit73 = (* (( (ptr) (* (( (ptr) formal←c24856)+8) ))+10) ), BCK(var←c23160, limit73) ))) ) |= 32768; }; SOURCE(5203, 9) (* (( (ptr) formal←c24856)+12) ) = ((* (( (ptr) formal←c24856)+12) ) + 1); SOURCE(5214, 84) lab←L100015: ; if ((smin←v9392 > (* (( (ptr) formal←c24856)+12) ))) { } else { goto lab←L100013; }; SOURCE(5232, 44) { word idx74; word limit75; (* ((( (ptr) (* (( (ptr) formal←c24856)+8) ))+11)+( idx74 = (* (( (ptr) formal←c24856)+11) ), limit75 = (* (( (ptr) (* (( (ptr) formal←c24856)+8) ))+10) ), BCK(idx74, limit75) )) ) = 32768; }; SOURCE(5278, 9) (* (( (ptr) formal←c24856)+11) ) = ((* (( (ptr) formal←c24856)+11) ) + 1); SOURCE(5289, 9) (* (( (ptr) formal←c24856)+12) ) = ((* (( (ptr) formal←c24856)+12) ) + 1); goto lab←L100015; lab←L100013: ; }; }; SOURCE(5312, 60) { word var←c23192; { word pd76; word idx77; pd76 = (* (( (ptr) (* (( (ptr) gf←c24824)+92)/* var←c21880 */ ))+17) ); var←c23192 = ( idx77 = (word) ( *( (fPt) ((* (ptr) pd76 ))))(box←v9336, pd76), BCK(idx77, 32768) ); }; { word idx78; word limit79; (* ((( (ptr) (* (( (ptr) formal←c24856)+8) ))+11)+( idx78 = (* (( (ptr) formal←c24856)+11) ), limit79 = (* (( (ptr) (* (( (ptr) formal←c24856)+8) ))+10) ), BCK(idx78, limit79) )) ) = (((word) BCK(fmin←v9420, 65536) << 16) + (unsigned) ( (((unsigned)var←c23192 << 17) >> 17) )); }; }; SOURCE(5374, 9) (* (( (ptr) formal←c24856)+11) ) = ((* (( (ptr) formal←c24856)+11) ) + 1); } static word CountRuns←P420(p←v5036) word p←v5036; { register ptr gf←c24888 = (ptr) &globalframe; word runs←v5080; word s←v9484; /* CountRuns: */ SOURCE(5658, 305) SOURCE(5658, 305) runs←v5080 = 0; SOURCE(5738, 49) s←v9484 = ( (p←v5036 != 0) ? (* (ptr) p←v5036 ) : 0 ) ; SOURCE(5789, 174) lab←L100018: ; if ((p←v5036 != 0)) { } else { goto lab←L100016; }; { word sMin←v9528; word sSize←v9556; SOURCE(5806, 29) sMin←v9528 = (* (ptr) p←v5036 ); SOURCE(5837, 30) { word pd80; word idx81; pd80 = (* (( (ptr) (* (( (ptr) gf←c24888)+92)/* var←c21880 */ ))+18) ); sSize←v9556 = ( idx81 = (word) ( *( (fPt) ((* (ptr) pd80 ))))((* (W4Pt) (p←v5036) ), pd80), SGNCK(idx81) ); }; SOURCE(5869, 42) if (( (int)sMin←v9528 > (int)s←v9484)) { SOURCE(5887, 24) runs←v5080 = (runs←v5080 + (sMin←v9528 - s←v9484)); }; SOURCE(5914, 16) s←v9484 = (sMin←v9528 + sSize←v9556); SOURCE(5932, 19) runs←v5080 = (runs←v5080 + sSize←v9556); SOURCE(5953, 10) p←v5036 = (* (( (ptr) p←v5036)+4) ); }; goto lab←L100018; lab←L100016: ; SOURCE(5658, 305) return(runs←v5080); } static word NewGeneration←P480(sizeLimit←v5504) word sizeLimit←v5504; { register ptr gf←c24920 = (ptr) &globalframe; word g←v5548; /* NewGeneration: */ SOURCE(6453, 138) SOURCE(6453, 138) g←v5548 = 0; SOURCE(6523, 56) { word var←c23288; word var←c23320; word var←c23352; { word pd82; pd82 = (* (( (ptr) (* (( (ptr) gf←c24920)+95)/* var←c23256 */ ))+8) ); var←c23288 = (word) ( *( (fPt) ((* (ptr) pd82 ))))(sizeLimit←v5504, pd82); }; var←c23320 = ((word) var←c23288 << 2); var←c23352 = XR←NewObject((8 + var←c23320), (* (( (ptr) gf←c24920)+18) )); (* (( (ptr) var←c23352)+1) ) = var←c23288; g←v5548 = var←c23352; }; SOURCE(6581, 10) (* (ptr) g←v5548 ) = 0; SOURCE(6453, 138) return(g←v5548); } static word Create←P540(param←v5608) W16 param←v5608; { register ptr gf←c24952 = (ptr) &globalframe; word new←v5652; word maxSize←v9600 = 1; word lgMaxSize←v9628 = 0; word parameters←v9656; /* Create: */ SOURCE(6597, 439) SOURCE(6597, 439) new←v5652 = 0; SOURCE(6712, 51) parameters←v9656 = XR←NewObject(64, (* (( (ptr) gf←c24952)+19) )); (* (W16Pt) parameters←v9656 ) = param←v5608; SOURCE(6765, 23) new←v5652 = XR←NewObject(40, (* (( (ptr) gf←c24952)+11) )); SOURCE(6790, 84) (* (( (ptr) new←v5652)+5) ) = XR←NewObject(1024, (* (( (ptr) gf←c24952)+20) )); SOURCE(6876, 27) (* (( (ptr) new←v5652)+6) ) = 0; SOURCE(6905, 22) (* (( (ptr) new←v5652)+7) ) = 0; SOURCE(6929, 27) (* (( (ptr) new←v5652)+4) ) = parameters←v9656; SOURCE(6958, 48) { word var←c23480; var←c23480 = (word) NewGeneration←P480((* (ptr) (parameters←v9656) )); (* (( (ptr) new←v5652)+8) ) = var←c23480; }; SOURCE(7008, 28) (* (( (ptr) new←v5652)+9) ) = (* (( (ptr) gf←c24952)+5)/* emptyGeneration←v3392 */ ); SOURCE(6597, 439) return(new←v5652); } static word Occupancy←P600(x←v5712) word x←v5712; { register ptr gf←c24984 = (ptr) &globalframe; word lst←v5756; /* Occupancy: */ SOURCE(7042, 349) (void) (XR←MonitorEntry(x←v5712)); SOURCE(7042, 349) lst←v5756 = 0; SOURCE(7121, 270) { register word i←v9748 = 1; lab←L100022: ; { word gen←v9792; word text←v9820; SOURCE(7156, 26) gen←v9792 = (* ((( (ptr) x←v5712)+8)+BCK(i←v9748, 2)) ); SOURCE(7184, 39) { word var←c23512; word var←c23544; word var←c23576; { word idx83; var←c23512 = ( idx83 = (* (( (ptr) gen←v9792)+1) ), BCK(idx83, 32768) ); }; var←c23544 = ((word) ((word) (var←c23512 + 3) >> 2) << 2); var←c23576 = XR←NewObject((4 + var←c23544), (* (( (ptr) gf←c24984)+21) )); (* (( (hPt) var←c23576)+1) ) = var←c23512; text←v9820 = var←c23576; }; SOURCE(7225, 107) { register word i←v9876 = 0; register word noName←c23608; word var←c23640; noName←c23608 = (* (( (ptr) gen←v9792)+1) ); if ((i←v9876 >= noName←c23608)) { goto lab←L100023; }; lab←L100026: ; SOURCE(7259, 73) { word limit84; { word limit85; var←c23640 = (* ((( (ptr) gen←v9792)+2)+( limit85 = (* (( (ptr) gen←v9792)+1) ), BCK(i←v9876, limit85) )) ); }; (* ((( (bPt) text←v9820)+4)+( limit84 = (word) (unsigned) (* (( (hPt) text←v9820)+1) ), BCK(i←v9876, limit84) )) ) = ( (var←c23640 == (* (( (ptr) gf←c24984)+4)/* nullCharMask←v3364 */ )) ? 88 : ( (var←c23640 == 0) ? 45 : 35 ) ) ; }; i←v9876 = (i←v9876 + 1); if ((i←v9876 < noName←c23608)) { goto lab←L100026; }; lab←L100023: ; }; SOURCE(7343, 25) { word idx86; (* (hPt) text←v9820 ) = ( idx86 = (* (( (ptr) gen←v9792)+1) ), BCK(idx86, 32768) ); }; SOURCE(7370, 21) { word var←c23672; var←c23672 = XR←NewObject(8, (* (( (ptr) gf←c24984)+22) )); (* (ptr) var←c23672 ) = text←v9820; (* (( (ptr) var←c23672)+1) ) = lst←v5756; lst←v5756 = var←c23672; }; }; if ((0 >= i←v9748)) { goto lab←L100019; }; i←v9748 = (i←v9748 - 1); goto lab←L100022; lab←L100019: ; }; SOURCE(7042, 349) (void) (XR←MonitorExit(x←v5712)); return(lst←v5756); } static word Size←P660(x←v5912) word x←v5912; { word var←c5956; /* Size: */ SOURCE(7406, 94) (void) (XR←MonitorEntry(x←v5912)); SOURCE(7463, 37) { word var←c23704; { word idx87; var←c23704 = ( idx87 = (word) ((* (ptr) (* (( (ptr) x←v5912)+8) ) ) + (* (ptr) (* (( (ptr) x←v5912)+9) ) )), SGNCK(idx87) ); }; (void) (XR←MonitorExit(x←v5912)); return(var←c23704); }; } static word Fetch←P720(x←v6016, font←v6044, char←v6072) word x←v6016; word font←v6044; word char←v6072; { word var←c6132; word c←v9920; /* Fetch: */ SOURCE(7504, 467) (void) (XR←MonitorEntry(x←v6016)); SOURCE(7599, 81) c←v9920 = (word) FetchInternal←P840((* (( (ptr) x←v6016)+8) ), font←v6044, char←v6072, 0); SOURCE(7682, 250) if ((c←v9920 == 0)) { SOURCE(7700, 70) c←v9920 = (word) FetchInternal←P840((* (( (ptr) x←v6016)+9) ), font←v6044, char←v6072, 1); SOURCE(7772, 160) if ((c←v9920 != 0)) { SOURCE(7790, 142) if ((0 == (word) StoreInternal←P1080((* (( (ptr) x←v6016)+8) ), c←v9920))) { SOURCE(7846, 9) (void) Dillon←P1140(x←v6016); SOURCE(7886, 46) { word var←c23736; var←c23736 = (word) StoreInternal←P1080((* (( (ptr) x←v6016)+8) ), c←v9920); }; }; }; }; SOURCE(7961, 10) (void) (XR←MonitorExit(x←v6016)); return(c←v9920); } static word HashCharAndFont←P780(char←v6276, font←v6304, mod←v6332) word char←v6276; word font←v6304; word mod←v6332; { register ptr gf←c25016 = (ptr) &globalframe; word var←c6388; W2 cf←v9964; /* HashCharAndFont: */ SOURCE(8049, 246) SOURCE(8134, 42) cf←v9964.f0 = char←v6276; cf←v9964.f1 = font←v6304; SOURCE(8186, 109) SOURCE(8188, 107) { word var←c0286; { W3 var←c23832; var←c23832.f0 = (word) &cf←v9964; var←c23832.f1 = 0; var←c23832.f2 = 8; { word pd88; pd88 = (* (( (ptr) (* (( (ptr) gf←c25016)+95)/* var←c23256 */ ))+7) ); var←c0286 = (word) ( *( (fPt) ((* (ptr) pd88 ))))(var←c23832, mod←v6332, pd88); }; }; return(var←c0286); }; } static word FetchInternal←P840(gen←v6448, font←v6476, char←v6504, remove←v6532) word gen←v6448; word font←v6476; word char←v6504; word remove←v6532; { register ptr gf←c25048 = (ptr) &globalframe; word var←c6588; word hash←v10008; word last←v10036; word c←v10064 = 0; /* FetchInternal: */ SOURCE(8302, 563) SOURCE(8426, 57) hash←v10008 = (word) HashCharAndFont←P780(char←v6504, font←v6476, (* (( (ptr) gen←v6448)+1) )); SOURCE(8485, 30) last←v10036 = ((* (( (ptr) gen←v6448)+1) ) - 1); SOURCE(8536, 211) lab←L100029: ; { word tc89; { word limit90; c←v10064 = (* ((( (ptr) gen←v6448)+2)+( limit90 = (* (( (ptr) gen←v6448)+1) ), BCK(hash←v10008, limit90) )) ); }; if ((c←v10064 != 0)) { if (((* (ptr) c←v10064 ) != font←v6476)) { tc89 = (word) 1; } else { tc89 = (word) ((* (( (ptr) c←v10064)+1) ) != char←v6504); }; } else { tc89 = (word) 0; }; if (tc89) { } else { goto lab←L100027; }; }; SOURCE(8598, 149) if ((hash←v10008 != 0)) { SOURCE(8613, 19) hash←v10008 = (hash←v10008 - 1); } else { SOURCE(8634, 41) if ((last←v10036 == (word) -1)) { SOURCE(8663, 12) return(0); }; SOURCE(8714, 11) hash←v10008 = last←v10036; SOURCE(8727, 20) last←v10036 = (word) -1; }; goto lab←L100029; lab←L100027: ; SOURCE(8772, 78) if ( ( (0 != remove←v6532) ? (c←v10064 != 0) : 0 ) ) { SOURCE(8801, 24) { word limit91; (* ((( (ptr) gen←v6448)+2)+( limit91 = (* (( (ptr) gen←v6448)+1) ), BCK(hash←v10008, limit91) )) ) = (* (( (ptr) gf←c25048)+4)/* nullCharMask←v3364 */ ); }; SOURCE(8827, 23) { word idx92; (* (ptr) gen←v6448 ) = ( idx92 = (word) ((* (ptr) gen←v6448 ) - 1), SGNCK(idx92) ); }; }; SOURCE(8855, 10) return(c←v10064); } static word GetParameters←P900(x←v6648) word x←v6648; { word var←c6692; /* GetParameters: */ SOURCE(8871, 89) SOURCE(8938, 22) return((* (( (ptr) x←v6648)+4) )); } static void UpdateParameters←P960(formal←c0300, formal←c0301) word formal←c0300; word formal←c0301; { W6 var←c25080; /* declaration of x←v6752 skipped */ /* declaration of action←v6780 skipped */ var←c25080.f4/* x←v6752 */ = formal←c0300; var←c25080.f5/* action←v6780 */ = formal←c0301; /* UpdateParameters: */ SOURCE(8964, 125) (void) (XR←MonitorEntry(var←c25080.f4/* x←v6752 */ )); SOURCE(9046, 43) { word var←c0287; var←c0287 = (word) &var←c25080; (void) (word) XR←Enable(( ((word) (fPt) NoName←Q3444) ), ( ((word) (fPt) NoName←Q3504) ), var←c0287); }; SOURCE(8964, 125) (void) (XR←MonitorExit(var←c25080.f4/* x←v6752 */ )); return; } static word NoName←Q3444(formal←c0276) word formal←c0276; { SOURCE(9069, 20) { word pd93; pd93 = (* (( (ptr) formal←c0276)+5) ); (void) ( *( (fPt) ((* (ptr) pd93 ))))((* ((( (ptr) (* (( (ptr) formal←c0276)+4) ))+4)) ), pd93); }; return(0); } static void Store←P1020(x←v6900, charMask←v6928) word x←v6900; word charMask←v6928; { /* Store: */ SOURCE(9095, 228) (void) (XR←MonitorEntry(x←v6900)); SOURCE(9167, 156) if ((0 == (word) StoreInternal←P1080((* (( (ptr) x←v6900)+8) ), charMask←v6928))) { SOURCE(9230, 9) (void) Dillon←P1140(x←v6900); SOURCE(9270, 53) { word var←c23864; var←c23864 = (word) StoreInternal←P1080((* (( (ptr) x←v6900)+8) ), charMask←v6928); }; }; SOURCE(9095, 228) (void) (XR←MonitorExit(x←v6900)); return; } static word StoreInternal←P1080(gen←v6988, charMask←v7016) word gen←v6988; word charMask←v7016; { word var←c7060; word hash←v10108; word last←v10136; word c←v10164 = 0; /* StoreInternal: */ SOURCE(9350, 645) SOURCE(9444, 75) hash←v10108 = (word) HashCharAndFont←P780((* (( (ptr) charMask←v7016)+1) ), (* (ptr) charMask←v7016 ), (* (( (ptr) gen←v6988)+1) )); SOURCE(9521, 30) last←v10136 = ((* (( (ptr) gen←v6988)+1) ) - 1); SOURCE(9572, 63) if (((* (ptr) gen←v6988 ) > ((* (( (ptr) gen←v6988)+1) ) - ((* (( (ptr) gen←v6988)+1) ) >> 2)))) { SOURCE(9621, 14) return(0); }; SOURCE(9656, 233) lab←L100034: ; { word tc94; { word limit95; c←v10164 = (* ((( (ptr) gen←v6988)+2)+( limit95 = (* (( (ptr) gen←v6988)+1) ), BCK(hash←v10108, limit95) )) ); }; if ((c←v10164 != 0)) { if (((* (ptr) c←v10164 ) != (* (ptr) charMask←v7016 ))) { tc94 = (word) 1; } else { tc94 = (word) ((* (( (ptr) c←v10164)+1) ) != (* (( (ptr) charMask←v7016)+1) )); }; } else { tc94 = (word) 0; }; if (tc94) { } else { goto lab←L100032; }; }; SOURCE(9738, 151) if ((hash←v10108 != 0)) { SOURCE(9753, 19) hash←v10108 = (hash←v10108 - 1); } else { SOURCE(9774, 43) if ((last←v10136 == (word) -1)) { SOURCE(9803, 14) return(0); }; SOURCE(9856, 11) hash←v10108 = last←v10136; SOURCE(9869, 20) last←v10136 = (word) -1; }; goto lab←L100034; lab←L100032: ; SOURCE(9914, 42) if ((c←v10164 == 0)) { SOURCE(9932, 24) (* (ptr) gen←v6988 ) = ((* (ptr) gen←v6988 ) + 1); }; SOURCE(9959, 20) { word limit96; (* ((( (ptr) gen←v6988)+2)+( limit96 = (* (( (ptr) gen←v6988)+1) ), BCK(hash←v10108, limit96) )) ) = charMask←v7016; }; SOURCE(9981, 14) return(1); } static void Dillon←P1140(x←v7120) word x←v7120; { register ptr gf←c25112 = (ptr) &globalframe; word newSize←v10208; /* Dillon: */ SOURCE(10147, 282) SOURCE(10188, 160) { word tc97; word x98; word pd99; word x100; float tf101; word idx102; if (((float)(unsigned)(* (ptr) (* (( (ptr) x←v7120)+9) ) ) < (float)(unsigned)(* (( (ptr) (* (( (ptr) x←v7120)+9) ))+1) ) * ( x98 = (* (( (ptr) gf←c25112)+6)/* discardRate←v3756 */ ), *(float*)&x98 ))) { pd99 = (* (( (ptr) (* (( (ptr) gf←c25112)+96)/* var←c23896 */ ))+7) ); tc97 = (word) ( idx102 = (word) ( *( (fPt) ((* (ptr) pd99 ))))(( tf101 = (float)(unsigned)(* (( (ptr) (* (( (ptr) x←v7120)+8) ))+1) ) * ( x100 = (* (( (ptr) gf←c25112)+7)/* growthFactor←v3784 */ ), *(float*)&x100 ), *(word*)&tf101 ), pd99), SGNCK(idx102) ); } else { tc97 = (word) (* (ptr) (* (( (ptr) x←v7120)+4) ) ); }; newSize←v10208 = tc97; }; SOURCE(10350, 23) (void) EraseInternal←P1200((* ((( (ptr) x←v7120)+9)) )); SOURCE(10375, 19) (* (( (ptr) x←v7120)+9) ) = (* (( (ptr) x←v7120)+8) ); SOURCE(10396, 33) { word var←c23928; var←c23928 = (word) NewGeneration←P480(newSize←v10208); (* (( (ptr) x←v7120)+8) ) = var←c23928; }; } static void EraseInternal←P1200(gen←v7180) word gen←v7180; { /* EraseInternal: */ SOURCE(10435, 119) SOURCE(10486, 54) { register word i←v10252 = 0; register word noName←c23960; { word idx103; noName←c23960 = ( idx103 = (* (( (ptr) gen←v7180)+1) ), SGNCK(idx103) ); }; if (( (int)i←v10252 >= (int)noName←c23960)) { goto lab←L100035; }; lab←L100038: ; SOURCE(10520, 20) { word limit104; (* ((( (ptr) gen←v7180)+2)+( limit104 = (* (( (ptr) gen←v7180)+1) ), BCK(i←v10252, limit104) )) ) = 0; }; i←v10252 = (i←v10252 + 1); if (( (int)i←v10252 < (int)noName←c23960)) { goto lab←L100038; }; lab←L100035: ; }; SOURCE(10542, 12) (* (ptr) gen←v7180 ) = 0; } static void Launder←P1260(x←v7240, keep←v7268) word x←v7240; word keep←v7268; { word list←v10296; /* Launder: */ SOURCE(10560, 291) SOURCE(10638, 6) list←v10296 = (word) GetList←P1380(x←v7240); SOURCE(10675, 8) (void) Flush←P1320(x←v7240); SOURCE(10685, 166) lab←L100041: ; if ((list←v10296 != 0)) { } else { goto lab←L100039; }; { word this←v10424; word next←v10452; SOURCE(10705, 27) this←v10424 = (* (ptr) list←v10296 ); SOURCE(10734, 6) next←v10452 = (* (( (ptr) list←v10296)+1) ); SOURCE(10770, 16) (* (ptr) list←v10296 ) = 0; SOURCE(10788, 15) (* (( (ptr) list←v10296)+1) ) = 0; SOURCE(10805, 11) list←v10296 = next←v10452; SOURCE(10818, 33) if ((0 != (word) ( *( (fPt) ((* (ptr) keep←v7268 ))))(this←v10424, keep←v7268))) { SOURCE(10837, 14) (void) Store←P1020(x←v7240, this←v10424); }; }; goto lab←L100041; lab←L100039: ; } static void Flush←P1320(x←v7432) word x←v7432; { register ptr gf←c25144 = (ptr) &globalframe; /* Flush: */ SOURCE(10866, 476) (void) (XR←MonitorEntry(x←v7432)); { word var←c24056; SOURCE(10910, 220) if ( ( ((* (( (ptr) x←v7432)+5) ) != 0) ? (0 == (* (( (ptr) x←v7432)+6) )) : 0 ) ) { SOURCE(10965, 25) { word var←c23992; var←c23992 = (* (( (ptr) x←v7432)+5) ); XR←FillWords(&(* (W256Pt) (var←c23992)), 256, 0); }; } else { SOURCE(10999, 25) (* (( (ptr) x←v7432)+6) ) = 0; SOURCE(11026, 82) (* (( (ptr) x←v7432)+5) ) = XR←NewObject(1024, (* (( (ptr) gf←c25144)+20) )); SOURCE(11110, 20) (* (( (ptr) x←v7432)+7) ) = 0; }; SOURCE(11135, 23) (void) EraseInternal←P1200((* ((( (ptr) x←v7432)+8)) )); SOURCE(11160, 23) (void) EraseInternal←P1200((* ((( (ptr) x←v7432)+9)) )); SOURCE(11185, 26) (* (( (ptr) x←v7432)+9) ) = (* (( (ptr) gf←c25144)+5)/* emptyGeneration←v3392 */ ); SOURCE(11213, 129) var←c24056 = (* (ptr) (* (( (ptr) x←v7432)+4) ) ); if ( ( (var←c24056 <= ((* (( (ptr) (* (( (ptr) x←v7432)+8) ))+1) ) >> 1)) ? 1 : (var←c24056 > (* (( (ptr) (* (( (ptr) x←v7432)+8) ))+1) )) ) ) { SOURCE(11294, 48) { word var←c24088; var←c24088 = (word) NewGeneration←P480((* (ptr) ((* (( (ptr) x←v7432)+4) )) )); (* (( (ptr) x←v7432)+8) ) = var←c24088; }; }; }; SOURCE(10866, 476) (void) (XR←MonitorExit(x←v7432)); return; } static word GetList←P1380(x←v7492) word x←v7492; { register ptr gf←c25176 = (ptr) &globalframe; word list←v7536; /* GetList: */ SOURCE(11351, 253) (void) (XR←MonitorEntry(x←v7492)); SOURCE(11351, 253) list←v7536 = 0; SOURCE(11436, 168) { register word g←v10628 = 0; lab←L100045: ; { word gen←v10692; SOURCE(11463, 26) gen←v10692 = (* ((( (ptr) x←v7492)+8)+g←v10628) ); SOURCE(11491, 113) { register word i←v10736 = 0; register word noName←c24120; { word idx105; noName←c24120 = ( idx105 = (* (( (ptr) gen←v10692)+1) ), SGNCK(idx105) ); }; if (( (int)i←v10736 >= (int)noName←c24120)) { goto lab←L100046; }; lab←L100049: ; { word c←v10780; SOURCE(11525, 20) { word limit106; c←v10780 = (* ((( (ptr) gen←v10692)+2)+( limit106 = (* (( (ptr) gen←v10692)+1) ), BCK(i←v10736, limit106) )) ); }; SOURCE(11547, 57) if ( ( (c←v10780 != 0) ? (c←v10780 != (* (( (ptr) gf←c25176)+4)/* nullCharMask←v3364 */ )) : 0 ) ) { SOURCE(11584, 20) { word var←c24152; var←c24152 = XR←NewObject(8, (* (( (ptr) gf←c25176)+25) )); (* (ptr) var←c24152 ) = c←v10780; (* (( (ptr) var←c24152)+1) ) = list←v7536; list←v7536 = var←c24152; }; }; }; i←v10736 = (i←v10736 + 1); if (( (int)i←v10736 < (int)noName←c24120)) { goto lab←L100049; }; lab←L100046: ; }; }; if ((g←v10628 >= 1)) { goto lab←L100042; }; g←v10628 = (g←v10628 + 1); goto lab←L100045; lab←L100042: ; }; SOURCE(11351, 253) (void) (XR←MonitorExit(x←v7492)); return(list←v7536); } static word GetNamedCache←P1440(atom←v7680) word atom←v7680; { register ptr gf←c25208 = (ptr) &globalframe; word r←v7724; /* GetNamedCache: */ SOURCE(11628, 183) SOURCE(11628, 183) r←v7724 = 0; SOURCE(11695, 44) { W2 var←c0233; word var←c0288; { word pd107; pd107 = (* (( (ptr) (* (( (ptr) gf←c25208)+91)/* var←c21816 */ ))+7) ); (void) ( *( (fPt) ((* (ptr) pd107 ))))((word) &var←c0233, (* (( (ptr) gf←c25208)+8)/* cacheTab←v4008 */ ), atom←v7680, pd107) ; }; var←c0288 = var←c0233.f1; r←v7724 = XR←Narrow(var←c0288, (* (( (ptr) gf←c25208)+11) )); }; SOURCE(11741, 70) if ((r←v7724 == 0)) { SOURCE(11759, 14) { W16 var←c24184; (* (ptr) &var←c24184 ) = 4000; (* (( (ptr) &var←c24184)+1) ) = XR←CheckProc(0); (* (( (ptr) &var←c24184)+2) ) = (* (ptr) &fc108 ); (* (( (ptr) &var←c24184)+3) ) = (* (ptr) &fc109 ); (* (( (ptr) &var←c24184)+4) ) = (* (ptr) &fc108 ); (* (( (ptr) &var←c24184)+5) ) = (* (ptr) &fc109 ); (* (( (ptr) &var←c24184)+6) ) = (* (ptr) &fc109 ); (* (( (ptr) &var←c24184)+7) ) = (* (ptr) &fc110 ); (* (( (ptr) &var←c24184)+8) ) = (* (ptr) &fc108 ); (* (( (ptr) &var←c24184)+9) ) = (* (ptr) &fc109 ); (* (( (ptr) &var←c24184)+10) ) = (* (ptr) &fc109 ); (* (( (ptr) &var←c24184)+11) ) = (* (ptr) &fc109 ); (* (( (ptr) &var←c24184)+12) ) = (* (ptr) &fc109 ); (* (( (ptr) &var←c24184)+13) ) = 0; (* (( (ptr) &var←c24184)+14) ) = 0; (* (( (ptr) &var←c24184)+15) ) = 0; r←v7724 = (word) Create←P540(var←c24184); }; SOURCE(11775, 36) { word var←c24216; word pd111; pd111 = (* (( (ptr) (* (( (ptr) gf←c25208)+91)/* var←c21816 */ ))+9) ); var←c24216 = (word) ( *( (fPt) ((* (ptr) pd111 ))))((* (( (ptr) gf←c25208)+8)/* cacheTab←v4008 */ ), atom←v7680, r←v7724, pd111) ; }; }; SOURCE(11628, 183) return(r←v7724); } static void SetNamedCacheParameters←P1500(formal←c0238) word formal←c0238; { register ptr gf←c25240 = (ptr) &globalframe; word r←v10824; /* SetNamedCacheParameters: */ SOURCE(11820, 309) SOURCE(11892, 55) { W2 var←c0240; word var←c0289; { word pd112; pd112 = (* (( (ptr) (* (( (ptr) gf←c25240)+91)/* var←c21816 */ ))+7) ); (void) ( *( (fPt) ((* (ptr) pd112 ))))((word) &var←c0240, (* (( (ptr) gf←c25240)+8)/* cacheTab←v4008 */ ), (* (ptr) formal←c0238/* atom←v7784 */ ), pd112) ; }; var←c0289 = var←c0240.f1; r←v10824 = XR←Narrow(var←c0289, (* (( (ptr) gf←c25240)+11) )); }; SOURCE(11949, 180) if ((r←v10824 == 0)) { SOURCE(11967, 13) r←v10824 = (word) Create←P540((* (W16Pt) ((( (ptr) formal←c0238)+1)/* p←v7812 */ ) )); SOURCE(11982, 36) { word var←c24248; word pd113; pd113 = (* (( (ptr) (* (( (ptr) gf←c25240)+91)/* var←c21816 */ ))+9) ); var←c24248 = (word) ( *( (fPt) ((* (ptr) pd113 ))))((* (( (ptr) gf←c25240)+8)/* cacheTab←v4008 */ ), (* (ptr) formal←c0238/* atom←v7784 */ ), r←v10824, pd113) ; }; } else { SOURCE(12027, 104) SOURCE(12094, 35) if (((* (( (ptr) r←v10824)+4) ) != 0)) { SOURCE(12121, 8) { word x←v20744; x←v20744 = r←v10824; SOURCE(12121, 8) (void) (XR←MonitorEntry(x←v20744)); SOURCE(12073, 18) (* (W16Pt) (* (( (ptr) x←v20744)+4) ) ) = (* (W16Pt) (( (ptr) formal←c0238)+1)/* p←v7812 */ ); (void) (XR←MonitorExit(x←v20744)); }; }; }; } static void FlushAll←P1560() { W6 var←c25272; register ptr gf←c25304 = (ptr) &globalframe; /* declaration of var←c24280 skipped */ /* FlushAll: */ SOURCE(12179, 140) { word tmpAddr114; tmpAddr114 = (word) (( (ptr) &var←c25272)+4)/* var←c24280 */ ; (* (ptr) tmpAddr114 ) = ( ((word) (fPt) epa←P3024) ); (* (( (ptr) tmpAddr114) + 1) ) = 1; }; SOURCE(12287, 32) { word var←c24312; word pd115; pd115 = (* (( (ptr) (* (( (ptr) gf←c25304)+91)/* var←c21816 */ ))+13) ); var←c24312 = (word) ( *( (fPt) ((* (ptr) pd115 ))))((* (( (ptr) gf←c25304)+8)/* cacheTab←v4008 */ ), (word) (( (bPt) &var←c25272)+16) /* var←c24280 */ , pd115); }; } static word epa←P3024(key←v11048, val←v11076, formal←c25368) word key←v11048; word val←v11076; word formal←c25368; { register ptr gf←c25336 = (ptr) &globalframe; word quit←v11132; formal←c25368 = (formal←c25368 - 16); /* epa: */ SOURCE(12208, 76) SOURCE(12208, 76) quit←v11132 = 0; SOURCE(12266, 18) { word var←c24344; var←c24344 = XR←Narrow(val←v11076, (* (( (ptr) gf←c25336)+11) )); (void) Flush←P1320(var←c24344); }; SOURCE(12208, 76) return(quit←v11132); } static word ObtainSmallCache←P1620(x←v7888) word x←v7888; { register ptr gf←c25400 = (ptr) &globalframe; word var←c7932; /* ObtainSmallCache: */ SOURCE(12417, 483) (void) (XR←MonitorEntry(x←v7888)); SOURCE(12493, 290) if ((0 != (* (( (ptr) x←v7888)+6) ))) { SOURCE(12521, 39) (* (( (ptr) x←v7888)+7) ) = ((* (( (ptr) x←v7888)+7) ) + 1); SOURCE(12562, 221) if (((* (( (ptr) x←v7888)+7) ) > (* (( (ptr) gf←c25400)+9)/* smallCacheFailLimit←v4064 */ ))) { SOURCE(12611, 82) (* (( (ptr) x←v7888)+5) ) = XR←NewObject(1024, (* (( (ptr) gf←c25400)+20) )); SOURCE(12695, 25) (* (( (ptr) x←v7888)+6) ) = 0; SOURCE(12722, 61) (* (( (ptr) gf←c25400)+10)/* smallCacheFailureRecoveries←v4092 */ ) = ((* (( (ptr) gf←c25400)+10)/* smallCacheFailureRecoveries←v4092 */ ) + 1); }; }; SOURCE(12791, 38) if ((0 != (* (( (ptr) x←v7888)+6) ))) { SOURCE(12817, 12) (void) (XR←MonitorExit(x←v7888)); return(0); }; SOURCE(12831, 24) (* (( (ptr) x←v7888)+6) ) = 1; SOURCE(12857, 20) (* (( (ptr) x←v7888)+7) ) = 0; SOURCE(12879, 21) { word var←c24408; var←c24408 = (* (( (ptr) x←v7888)+5) ); (void) (XR←MonitorExit(x←v7888)); return(var←c24408); }; } static void ReleaseSmallCache←P1680(x←v7992, s←v8020) word x←v7992; word s←v8020; { /* ReleaseSmallCache: */ SOURCE(12906, 185) (void) (XR←MonitorEntry(x←v7992)); SOURCE(12977, 114) if ( ( (0 != (* (( (ptr) x←v7992)+6) )) ? ((* (( (ptr) x←v7992)+5) ) == s←v8020) : 0 ) ) { SOURCE(13026, 26) (* (( (ptr) x←v7992)+6) ) = 0; } else { SOURCE(13061, 30) if ((s←v8020 != 0)) { SOURCE(13077, 14) XR←FillWords(&(* (W256Pt) (s←v8020)), 256, 0); }; }; SOURCE(12906, 185) (void) (XR←MonitorExit(x←v7992)); return; } static void NoName←Q3504(formal←c0258, formal←c200000, formal←c200001, formal←c200002, formal←c200003) word formal←c0258; word formal←c200000; word formal←c200001; word formal←c200002; word formal←c200003; { if ((formal←c200001 == XR←Unwind)) { (void) (XR←MonitorExit(* (( (ptr) formal←c200000)+4) )); }; (* (ptr) formal←c0258 ) = 0; (* (( (ptr) formal←c0258)+1) ) = 0; return; } /* file: ImagerMaskCacheImpl, module: ImagerMaskCacheImpl, compiled at: July 28, 1993 10:20:29 am PDT */ extern void XR←install←ImagerMaskCacheImpl() { NoName←Q3384(); } extern void XR←run←ImagerMaskCacheImpl() { XR←Start(&globalframe); }