/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 27, 1992 5:56:16 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: TEditLocksImpl, module: TEditLocksImpl */ /* switches: bcfhklnouw */ #include #include static char versionStamp[] = "@(#)mob_version [2754919512,2579146397] TEditLocksImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {word f0, f1, f2, f3, f4, f5;} W6; typedef W6 *W6Pt; typedef word (*fPt)(); typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7; typedef struct {word f0, f1;} W2; typedef W2 *W2Pt; #define SOURCE(p, l) /* source p, l */ #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR_RaiseBoundsFault()) : (idx) ) #define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) ) static void NoName_Q1260(); static void TEditLocksImpl_P0(); static void LockBoth_P60(); static word Lock_P120(); static void LockIt_P180(); static word NoName_Q1320(); static word LockOrder_P240(); static void Unlock_P300(); static void UnlockIt_P360(); static word NoName_Q1380(); static word LockDocAndTdd_P420(); static void UnlockDocAndTdd_P480(); static word WaitingForWrite_P540(); static word GetRoot_P600(); static word LockedGetLock_P720(); static word NoName_Q1440(); static void NoName_Q1500(); static void NoName_Q1560(); static void NoName_Q1620(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\241\200\031\316\300\154\273\372\020\100\164\000\000"}; static struct {unsigned f; char r[4];} string2 = {196611, "\004F\000"}; static struct {unsigned f; char r[4];} string3 = {131076, "\216\251\000"}; static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"}; static struct {unsigned f; char r[16];} string5 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"}; static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\113\175\243\331\300\252\247\212\133\100\164\000\000"}; static struct {unsigned f; char r[36];} string7 = {2162721, "\006\014\000\001\060\001\064\001\070\001\074\001\100\100\001\100\124\001\100\130\001\100\134\001\100\140\001\100\144\001\100\150\001\000\000"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\343\357\262\137\300\144\166\356\317\100\164\000\000"}; static struct {unsigned f; char r[16];} string9 = {851981, "\006\005\000\001\004\001\054\001\070\001\100\114\001\000\000"}; static struct {unsigned f; char r[16];} string10 = {786448, "LockedViewer\000\000\000"}; static struct {unsigned f; char r[16];} string11 = {786448, "DocumentLock\000\000\000"}; static struct {unsigned f; char r[16];} string12 = {917520, "LockDocAndTdd1\000"}; static struct {unsigned f; char r[16];} string13 = {917520, "LockDocAndTdd2\000"}; static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\244\064\274\130\300\231\272\246\235\100\200\000\000"}; static struct {unsigned f; char r[16];} string15 = {786444, "\006\004\040\001\044\001\050\001\100\124\004\017\000\000\000"}; static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\234\060\361\073\300\103\025\207\123\100\150\000\000"}; static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\237\211\044\154\300\046\105\033\126\100\150\000\000"}; static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\343\357\262\137\300\144\166\356\317\100\150\000\000"}; static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\071\221\120\257\300\230\321\322\204\100\150\000\000"}; static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\254\253\350\355\300\233\126\335\104\100\150\000\000"}; static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\234\330\257\310\300\272\273\374\141\100\150\000\000"}; static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\241\200\031\316\300\154\273\372\020\100\150\000\000"}; static struct { word f0[25]; word f25; word f26; 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[15]; } globalframe = { {0}, (word) LockedGetLock_P720, 0, (word) GetRoot_P600, 0, (word) WaitingForWrite_P540, 0, (word) UnlockDocAndTdd_P480, 0, (word) LockDocAndTdd_P420, 0, (word) UnlockIt_P360, 0, (word) Unlock_P300, 0, (word) LockOrder_P240, 0, (word) LockIt_P180, 0, (word) Lock_P120, 0, (word) LockBoth_P60, 0, (word) TEditLocksImpl_P0, {0} }; static void NoName_Q1260() { register ptr gf_c0114 = (ptr) &globalframe; word var_c16864; (* (( (ptr) gf_c0114)+11) ) = (word) XR_GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf_c0114)+15) ) = (word) XR_GetTypeIndex((word) &string3, 0, (word) &string4); (* (( (ptr) gf_c0114)+16) ) = (word) XR_GetTypeIndex((word) &string5, 0, (word) &string4); (* (( (ptr) gf_c0114)+19) ) = (word) XR_GetTypeIndex((word) &string6, 0, (word) &string7); (* (( (ptr) gf_c0114)+20) ) = (word) XR_GetTypeIndex((word) &string8, 0, (word) &string9); (* (ptr) (( (bPt) gf_c0114)+84) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0114)+15) ), (word) &string10); (* (ptr) (( (bPt) gf_c0114)+88) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0114)+15) ), (word) &string11); (* (ptr) (( (bPt) gf_c0114)+92) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0114)+16) ), (word) &string12); (* (ptr) (( (bPt) gf_c0114)+96) ) = (word) XR_GetRefLiteral((* (( (ptr) gf_c0114)+16) ), (word) &string13); (void) XR_DeclareGlobalFrame((word) "TEditLocksImpl", &globalframe, (word) XR_GetTypeIndex((word) &string14, 0, (word) &string15) , (word) (( (bPt) gf_c0114)+188)/* var_c16160 */ ); var_c16864 = (word) XR_ImportInterface((word) "NodeProps", (word) XR_GetTypeIndexS((word) (&string16)), 28); (* (( (ptr) gf_c0114)+55)/* var_c16288 */ ) = var_c16864; (void) XR_ImportProcS(var_c16864, 67633410); (void) XR_ImportProcS(var_c16864, 786435); (void) XR_ImportProcS(var_c16864, 67638274); (void) XR_ImportProcS(var_c16864, 67638018); (void) XR_ImportProcS(var_c16864, 67637762); (void) XR_ImportProcS(var_c16864, 1052932); var_c16864 = (word) XR_ImportInterface((word) "Process", (word) XR_GetTypeIndexS((word) (&string17)), 22); (* (( (ptr) gf_c0114)+58)/* var_c16448 */ ) = var_c16864; (void) XR_ImportProcS(var_c16864, 134219776); var_c16864 = (word) XR_ImportInterface((word) "MonitoredQueue", (word) XR_GetTypeIndexS((word) (&string18)), 9); (* (( (ptr) gf_c0114)+61)/* var_c16704 */ ) = var_c16864; (void) XR_ImportProcS(var_c16864, 525058); var_c16864 = (word) XR_ImportInterface((word) "TEditDocument", (word) XR_GetTypeIndexS((word) (&string19)), 6); (* (( (ptr) gf_c0114)+56)/* var_c16320 */ ) = var_c16864; (void) XR_ImportProcS(var_c16864, 262657); (void) XR_ImportProcS(var_c16864, 68157700); (void) XR_ImportProcS(var_c16864, 67372289); var_c16864 = (word) XR_ImportInterface((word) "TEditRefresh", (word) XR_GetTypeIndexS((word) (&string20)), 3); (* (( (ptr) gf_c0114)+60)/* var_c16672 */ ) = var_c16864; var_c16864 = (word) XR_ImportInterface((word) "ViewerLocks", (word) XR_GetTypeIndexS((word) (&string21)), 9); (* (( (ptr) gf_c0114)+59)/* var_c16512 */ ) = var_c16864; (void) XR_ImportProcS(var_c16864, 67634946); var_c16864 = (word) XR_ImportInterface((word) "ViewerPrivate", (word) XR_GetTypeIndexS((word) (&string22)), 68); (* (( (ptr) gf_c0114)+57)/* var_c16416 */ ) = var_c16864; (void) XR_ImportProcS(var_c16864, 267265); (void) XR_ImportProcS(var_c16864, 267009); var_c16864 = (word) XR_ExportInterface((word) "TEditLocks", (word) XR_GetTypeIndexS((word) (&string23)), 7); (* (( (ptr) gf_c0114)+62)/* var_c16896 */ ) = var_c16864; (void) XR_ExportProcS(var_c16864, (word) (( (bPt) gf_c0114)+172)/* var_c16096 */ , 67895299); (void) XR_ExportProcS(var_c16864, (word) (( (bPt) gf_c0114)+180)/* var_c16128 */ , 135528709); (void) XR_ExportProcS(var_c16864, (word) (( (bPt) gf_c0114)+156)/* var_c16032 */ , 67633666); (void) XR_ExportProcS(var_c16864, (word) (( (bPt) gf_c0114)+148)/* var_c16000 */ , 262913); (void) XR_ExportProcS(var_c16864, (word) (( (bPt) gf_c0114)+132)/* var_c15936 */ , 68420613); (void) XR_ExportProcS(var_c16864, (word) (( (bPt) gf_c0114)+124)/* var_c15904 */ , 263425); (void) XR_ExportProcS(var_c16864, (word) (( (bPt) gf_c0114)+116)/* var_c15872 */ , 67372545); } static void TEditLocksImpl_P0(formal_c037, formal_c035) word formal_c037; word formal_c035; { register ptr gf_c16928 = (ptr) &globalframe; /* TEditLocksImpl: */ SOURCE(476, 5684) SOURCE(802, 27) (* (( (ptr) gf_c16928)+6)/* lockRootViewer_v3028 */ ) = 1; SOURCE(831, 28) (* (( (ptr) gf_c16928)+7)/* lockSplitViewer_v3056 */ ) = 1; SOURCE(5540, 38) { word var_c16256; var_c16256 = XR_NewObject(68, (* (( (ptr) gf_c16928)+11) )); (* (W6Pt) (( (ptr) var_c16256)+11) ) = (* (W6Pt) (( (ptr) gf_c16928)+49)/* var_c16224 */ ); (* (( (ptr) gf_c16928)+8)/* privateLock_v3392 */ ) = var_c16256; }; SOURCE(6066, 94) { word pd24; pd24 = (* (( (ptr) (* (( (ptr) gf_c16928)+55)/* var_c16288 */ ))+21) ); (void) ( *( (fPt) ((* (ptr) pd24 ))))((* (( (ptr) gf_c16928)+22) ), (* (( (ptr) (* (( (ptr) gf_c16928)+55)/* var_c16288 */ ))+22) ), (* (( (ptr) (* (( (ptr) gf_c16928)+55)/* var_c16288 */ ))+23) ), (* (( (ptr) (* (( (ptr) gf_c16928)+55)/* var_c16288 */ ))+24) ), pd24); }; } static void LockBoth_P60(formal_c045, doc1_v3556, doc2_v3584, who_v3612, access1_v3640, access2_v3668) word formal_c045; word doc1_v3556; word doc2_v3584; word who_v3612; word access1_v3640; word access2_v3668; { register ptr gf_c16960 = (ptr) &globalframe; word lock1_v3712; word lock2_v3740; /* LockBoth: */ SOURCE(862, 398) SOURCE(862, 398) lock1_v3712 = 0; SOURCE(862, 398) lock2_v3740 = 0; SOURCE(997, 35) (* (( (ptr) gf_c16960)+4)/* locksBothCount_v2972 */ ) = ((* (( (ptr) gf_c16960)+4)/* locksBothCount_v2972 */ ) + 1); SOURCE(1034, 226) if ( ( (doc1_v3556 == doc2_v3584) ? (access1_v3640 == 1) : 0 ) || ( (doc1_v3556 != doc2_v3584) ? (0 != (word) LockOrder_P240( doc1_v3556, doc2_v3584)) : 0 ) ) { SOURCE(1117, 32) lock1_v3712 = (word) Lock_P120(doc1_v3556, who_v3612, access1_v3640); SOURCE(1151, 32) lock2_v3740 = (word) Lock_P120(doc2_v3584, who_v3612, access2_v3668); } else { SOURCE(1194, 32) lock2_v3740 = (word) Lock_P120(doc2_v3584, who_v3612, access2_v3668); SOURCE(1228, 32) lock1_v3712 = (word) Lock_P120(doc1_v3556, who_v3612, access1_v3640); }; /* removed tail goto */ (* (ptr) formal_c045 ) = lock1_v3712; (* (( (ptr) formal_c045)+1) ) = lock2_v3740; return; } static word Lock_P120(doc_v3800, who_v3828, access_v3856) word doc_v3800; word who_v3828; word access_v3856; { register ptr gf_c16992 = (ptr) &globalframe; word lock_v3900; /* Lock: */ SOURCE(1268, 860) SOURCE(1268, 860) lock_v3900 = 0; SOURCE(1374, 16) if ((doc_v3800 == 0)) { SOURCE(1390, 5) (void) XR_RaiseUnnamedError(); }; SOURCE(1397, 731) lab_L100003: ; SOURCE(1397, 731) { word v_v5072; word root_v5100; word localViewer_v5128 = 0; SOURCE(1400, 47) { word pd25; pd25 = (* (( (ptr) (* (( (ptr) gf_c16992)+56)/* var_c16320 */ ))+9) ); v_v5072 = (word) ( *( (fPt) ((* (ptr) pd25 ))))(doc_v3800, pd25); }; SOURCE(1449, 25) root_v5100 = (word) GetRoot_P600(v_v5072); SOURCE(1503, 40) { word var_c16352; word lock_v15760; SOURCE(5410, 126) lock_v15760 = 0; SOURCE(5494, 42) var_c16352 = (word) LockedGetLock_P720((* (( (ptr) gf_c16992)+8)/* privateLock_v3392 */ ), doc_v3800); lock_v3900 = var_c16352; }; if ((lock_v3900 == 0)) { SOURCE(1537, 6) return(lock_v3900); }; SOURCE(1545, 217) if ((root_v5100 != 0)) { SOURCE(1566, 61) if ( ( (0 != (* (( (ptr) gf_c16992)+6)/* lockRootViewer_v3028 */ )) ? ((* (( (ptr) root_v5100)+21) ) == 0) : 0 ) ) { SOURCE(1609, 18) localViewer_v5128 = root_v5100; }; SOURCE(1629, 62) if ( ( (0 != (* (( (ptr) gf_c16992)+7)/* lockSplitViewer_v3056 */ )) ? ((* (( (ptr) root_v5100)+21) ) != 0) : 0 ) ) { SOURCE(1673, 18) localViewer_v5128 = root_v5100; }; SOURCE(1693, 69) if ((localViewer_v5128 != 0)) { SOURCE(1719, 43) { word pd26; pd26 = (* (( (ptr) (* (( (ptr) gf_c16992)+57)/* var_c16416 */ ))+23) ); (void) ( *( (fPt) ((* (ptr) pd26 ))))(localViewer_v5128, pd26); }; }; }; SOURCE(1767, 284) if ((root_v5100 == (word) GetRoot_P600(v_v5072))) { SOURCE(1795, 256) { word pd27; pd27 = (* (( (ptr) (* (( (ptr) gf_c16992)+56)/* var_c16320 */ ))+9) ); if (((word) ( *( (fPt) ((* (ptr) pd27 ))))(doc_v3800, pd27) == v_v5072)) { SOURCE(1845, 30) (void) LockIt_P180(lock_v3900, who_v3828, access_v3856, doc_v3800); SOURCE(1877, 100) { word pd28; pd28 = (* (( (ptr) (* (( (ptr) gf_c16992)+56)/* var_c16320 */ ))+9) ); if (((word) ( *( (fPt) ((* (ptr) pd28 ))))(doc_v3800, pd28) == v_v5072)) { SOURCE(1927, 50) { word pd29; pd29 = (* (( (ptr) (* (( (ptr) gf_c16992)+55)/* var_c16288 */ ))+4) ); (void) ( *( (fPt) ((* (ptr) pd29 ))))(doc_v3800, (* (( (ptr) gf_c16992)+21) ), localViewer_v5128, pd29); }; SOURCE(1979, 4) goto lab_L100002; }; }; SOURCE(1988, 42) { word pd30; pd30 = (* (( (ptr) (* (( (ptr) gf_c16992)+55)/* var_c16288 */ ))+4) ); (void) ( *( (fPt) ((* (ptr) pd30 ))))(doc_v3800, (* (( (ptr) gf_c16992)+21) ), 0, pd30); }; SOURCE(2032, 19) (void) UnlockIt_P360(lock_v3900, doc_v3800); }; }; }; SOURCE(2059, 69) if ((localViewer_v5128 != 0)) { SOURCE(2085, 43) { word pd31; pd31 = (* (( (ptr) (* (( (ptr) gf_c16992)+57)/* var_c16416 */ ))+24) ); (void) ( *( (fPt) ((* (ptr) pd31 ))))(localViewer_v5128, pd31); }; }; }; goto lab_L100003; lab_L100002: ; SOURCE(1268, 860) return(lock_v3900); } static void LockIt_P180(formal_c0137, formal_c0138, formal_c0139, doc_v4044) word formal_c0137; word formal_c0138; word formal_c0139; word doc_v4044; { W7 var_c17024; /* declaration of lock_v3960 skipped */ /* declaration of who_v3988 skipped */ /* declaration of access_v4016 skipped */ var_c17024.f4/* lock_v3960 */ = formal_c0137; var_c17024.f5/* who_v3988 */ = formal_c0138; var_c17024.f6/* access_v4016 */ = formal_c0139; /* LockIt: */ SOURCE(2143, 684) (void) (XR_MonitorEntry(var_c17024.f4/* lock_v3960 */ )); SOURCE(2233, 594) { word var_c0128; var_c0128 = (word) &var_c17024; (void) (word) XR_Enable(( ((word) (fPt) NoName_Q1320) ), ( ((word) (fPt) NoName_Q1620) ), var_c0128); }; SOURCE(2143, 684) (void) (XR_MonitorExit(var_c17024.f4/* lock_v3960 */ )); return; } static word NoName_Q1320(formal_c0119) word formal_c0119; { register ptr gf_c0118 = (ptr) &globalframe; SOURCE(2256, 18) { W2 myProcess_v5172; SOURCE(2256, 18) (* (ptr) (word) &myProcess_v5172 ) = 0; (* (( (ptr) (word) &myProcess_v5172) + 1) ) = 0; SOURCE(2284, 43) SOURCE(2285, 42) { word pd32; pd32 = (* (( (ptr) (* (( (ptr) gf_c0118)+58)/* var_c16448 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd32 ))))((word) (&myProcess_v5172), pd32); }; SOURCE(2330, 354) if (((* (( (ptr) formal_c0119)+6) ) == 0)) { SOURCE(2352, 79) if ( ! XR_EqualWords((( (ptr) (* (( (ptr) formal_c0119)+4) ))+7), &myProcess_v5172, 2)) { SOURCE(2385, 46) lab_L100009: ; { W2 temp33; (* (ptr) &temp33 ) = 0; (* (( (ptr) &temp33) + 1) ) = 0; if ( ! XR_EqualWords((( (ptr) (* (( (ptr) formal_c0119)+4) ))+7), &temp33, 2)) { } else { goto lab_L100007; }; }; SOURCE(2413, 18) (void) (XR_Wait((* (( (ptr) formal_c0119)+4) ), (word) (( (bPt) (* (( (ptr) formal_c0119)+4) ))+44))); goto lab_L100009; lab_L100007: ; }; } else { SOURCE(2450, 234) if ( ! XR_EqualWords((( (ptr) (* (( (ptr) formal_c0119)+4) ))+7), &myProcess_v5172, 2)) { SOURCE(2485, 171) if (((* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+5) ) > 0)) { SOURCE(2510, 45) (* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+4) ) = ((* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+4) ) + 1); SOURCE(2557, 42) lab_L100012: ; if (((* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+5) ) > 0)) { } else { goto lab_L100010; }; SOURCE(2581, 18) (void) (XR_Wait((* (( (ptr) formal_c0119)+4) ), (word) (( (bPt) (* (( (ptr) formal_c0119)+4) ))+44))); goto lab_L100012; lab_L100010: ; SOURCE(2610, 46) (* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+4) ) = ((* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+4) ) - 1); }; SOURCE(2659, 25) (* (W2Pt) (( (ptr) (* (( (ptr) formal_c0119)+4) ))+7) ) = myProcess_v5172; }; }; SOURCE(2688, 64) if (((* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+5) ) == 0)) { SOURCE(2709, 25) (* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+10) ) = (* (( (ptr) formal_c0119)+5) ); } else { SOURCE(2734, 18) (* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+9) ) = (* (( (ptr) formal_c0119)+5) ); }; SOURCE(2754, 25) { word idx34; (* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+5) ) = ( idx34 = (word) ((* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+5) ) + 1), BCK(idx34, 256) ); }; SOURCE(2781, 46) { word x35; word x36; (* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+6) ) = (x35 = (* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+6) ), x36 = (* (( (ptr) (* (( (ptr) formal_c0119)+4) ))+5) ), MAX( (unsigned) , x35, x36)); }; }; return(0); } static word LockOrder_P240(doc1_v4104, doc2_v4132) word doc1_v4104; word doc2_v4132; { register ptr gf_c17056 = (ptr) &globalframe; word var_c4176; word v1_v5232; word v2_v5260; /* LockOrder: */ SOURCE(2833, 335) SOURCE(2902, 77) { word tc37; word pd38; if ((doc1_v4104 == 0)) { tc37 = (word) 0; } else { pd38 = (* (( (ptr) (* (( (ptr) gf_c17056)+56)/* var_c16320 */ ))+9) ); tc37 = (word) ( *( (fPt) ((* (ptr) pd38 ))))(doc1_v4104, pd38); }; v1_v5232 = tc37; }; SOURCE(2981, 77) { word tc39; word pd40; if ((doc2_v4132 == 0)) { tc39 = (word) 0; } else { pd40 = (* (( (ptr) (* (( (ptr) gf_c17056)+56)/* var_c16320 */ ))+9) ); tc39 = (word) ( *( (fPt) ((* (ptr) pd40 ))))(doc2_v4132, pd40); }; v2_v5260 = tc39; }; SOURCE(3060, 54) if ((v1_v5232 != v2_v5260)) { SOURCE(3076, 38) { word pd41; pd41 = (* (( (ptr) (* (( (ptr) gf_c17056)+59)/* var_c16512 */ ))+11) ); return((word) ( *( (fPt) ((* (ptr) pd41 ))))(v1_v5232, v2_v5260, pd41)); }; }; SOURCE(3116, 52) return(( (int)doc1_v4104 <= (int)doc2_v4132)); } static void Unlock_P300(doc_v4236) word doc_v4236; { register ptr gf_c17088 = (ptr) &globalframe; word lock_v5304 = 0; /* Unlock: */ SOURCE(3172, 143) SOURCE(3231, 16) if ((doc_v4236 == 0)) { SOURCE(3247, 5) (void) XR_RaiseUnnamedError(); }; SOURCE(3254, 40) { word var_c16544; word lock_v15712; SOURCE(5410, 126) lock_v15712 = 0; SOURCE(5494, 42) var_c16544 = (word) LockedGetLock_P720((* (( (ptr) gf_c17088)+8)/* privateLock_v3392 */ ), doc_v4236); lock_v5304 = var_c16544; }; if ((lock_v5304 == 0)) { SOURCE(3288, 6) return; }; SOURCE(3296, 19) (void) UnlockIt_P360(lock_v5304, doc_v4236); } static void UnlockIt_P360(formal_c0140, formal_c0141) word formal_c0140; word formal_c0141; { W6 var_c17120; /* declaration of lock_v4296 skipped */ /* declaration of doc_v4324 skipped */ var_c17120.f4/* lock_v4296 */ = formal_c0140; var_c17120.f5/* doc_v4324 */ = formal_c0141; /* UnlockIt: */ SOURCE(3321, 982) (void) (XR_MonitorEntry(var_c17120.f4/* lock_v4296 */ )); SOURCE(3381, 922) { word var_c01; { word var_c0129; var_c0129 = (word) &var_c17120; var_c01 = (word) XR_Enable(( ((word) (fPt) NoName_Q1380) ), ( ((word) (fPt) NoName_Q1560) ), var_c0129); }; if ((var_c01 == 1)) { goto lab_L03; }; }; SOURCE(3321, 982) (void) (XR_MonitorExit(var_c17120.f4/* lock_v4296 */ )); return; lab_L03: ; return; } static word NoName_Q1380(formal_c0123) word formal_c0123; { register ptr gf_c0122 = (ptr) &globalframe; SOURCE(3404, 57) { word v_v5348; W2 var_c073; word var_c16608; SOURCE(3404, 57) { word pd42; pd42 = (* (( (ptr) (* (( (ptr) gf_c0122)+55)/* var_c16288 */ ))+5) ); v_v5348 = XR_Narrow((word) ( *( (fPt) ((* (ptr) pd42 ))))((* (( (ptr) formal_c0123)+5) ), (* (( (ptr) gf_c0122)+21) ), pd42) , (* (( (ptr) gf_c0122)+19) )); }; SOURCE(3463, 23) if (((* (( (ptr) formal_c0123)+4) ) == 0)) { SOURCE(3480, 6) (void) (XR_MonitorExit(* (( (ptr) formal_c0123)+4) )); return(1); }; SOURCE(3488, 24) if (((* (( (ptr) (* (( (ptr) formal_c0123)+4) ))+5) ) <= 0)) { SOURCE(3512, 5) (void) XR_RaiseUnnamedError(); }; SOURCE(3527, 73) SOURCE(3528, 67) { word tc43; W2 temp44; (* (ptr) &temp44 ) = 0; (* (( (ptr) &temp44) + 1) ) = 0; if ( ! XR_EqualWords((( (ptr) (* (( (ptr) formal_c0123)+4) ))+7), &temp44, 2)) { { word pd45; pd45 = (* (( (ptr) (* (( (ptr) gf_c0122)+58)/* var_c16448 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd45 ))))((word) (&var_c073), pd45); }; tc43 = (word) ! XR_EqualWords((( (ptr) (* (( (ptr) formal_c0123)+4) ))+7), &var_c073, 2); } else { tc43 = (word) 0; }; if (tc43) { SOURCE(3595, 5) (void) XR_RaiseUnnamedError(); }; }; { word idx46; var_c16608 = ( idx46 = (word) ((* (( (ptr) (* (( (ptr) formal_c0123)+4) ))+5) ) - 1), BCK(idx46, 256) ); }; (* (( (ptr) (* (( (ptr) formal_c0123)+4) ))+5) ) = var_c16608; if ((var_c16608 > 0)) { } else { { W2 temp47; (* (ptr) &temp47 ) = 0; (* (( (ptr) &temp47) + 1) ) = 0; if ( ! XR_EqualWords((( (ptr) (* (( (ptr) formal_c0123)+4) ))+7), &temp47, 2)) { SOURCE(3711, 404) { word viewer_v5392; SOURCE(3713, 66) { word pd48; pd48 = (* (( (ptr) (* (( (ptr) gf_c0122)+56)/* var_c16320 */ ))+9) ); viewer_v5392 = (word) ( *( (fPt) ((* (ptr) pd48 ))))((* ((( (ptr) formal_c0123)+5)) ), pd48); }; SOURCE(3781, 40) if ((viewer_v5392 != v_v5348)) { SOURCE(3800, 21) (* (( (ptr) gf_c0122)+5)/* dubious_v3000 */ ) = ((* (( (ptr) gf_c0122)+5)/* dubious_v3000 */ ) + 1); }; SOURCE(3823, 267) if ((viewer_v5392 != 0)) { SOURCE(3846, 177) { register word v_v5436; v_v5436 = viewer_v5392; lab_L100019: ; if ((v_v5436 != 0)) { } else { goto lab_L100016; }; SOURCE(3908, 80) { word var_c16640; var_c16640 = (* (( (ptr) v_v5436)+26) ); if ((var_c16640 == 0)) { /*1*/ goto lab_L100020; /*1*/ }; if (((* (( (ptr) gf_c0122)+20) ) == XR_GetReferentType(var_c16640))) { /*1*/ { /*1*/ word tdd_v5480; /*1*/ tdd_v5480 = var_c16640; SOURCE(3972, 16) /*1*/ (* (( (ptr) tdd_v5480)+9) ) = 1; /*1*/ }; /*1*/ } else { /*1*/ lab_L100020: ; /*1*/ }; }; SOURCE(3999, 24) if (((* (( (ptr) v_v5436)+21) ) == viewer_v5392)) { SOURCE(4023, 4) goto lab_L100017; }; v_v5436 = (* (( (ptr) v_v5436)+21) ); goto lab_L100019; lab_L100016: ; lab_L100017: ; }; SOURCE(4038, 52) { word pd49; pd49 = (* (( (ptr) (* (( (ptr) gf_c0122)+61)/* var_c16704 */ ))+7) ); (void) ( *( (fPt) ((* (ptr) pd49 ))))((* (( (ptr) formal_c0123)+5) ), (* (ptr) (* (( (ptr) (* (( (ptr) gf_c0122)+60)/* var_c16672 */ ))+4) ) ), pd49); }; }; SOURCE(4095, 18) { word tmpAddr50; tmpAddr50 = (word) (( (ptr) (* (( (ptr) formal_c0123)+4) ))+7); (* (ptr) tmpAddr50 ) = 0; (* (( (ptr) tmpAddr50) + 1) ) = 0; }; }; }; }; SOURCE(4127, 42) { word pd51; pd51 = (* (( (ptr) (* (( (ptr) gf_c0122)+55)/* var_c16288 */ ))+4) ); (void) ( *( (fPt) ((* (ptr) pd51 ))))((* (( (ptr) formal_c0123)+5) ), (* (( (ptr) gf_c0122)+21) ), 0, pd51); }; SOURCE(4171, 34) (* (( (ptr) (* (( (ptr) formal_c0123)+4) ))+9) ) = 0; (* (( (ptr) (* (( (ptr) formal_c0123)+4) ))+10) ) = 0; SOURCE(4207, 17) (* (( (ptr) (* (( (ptr) formal_c0123)+4) ))+6) ) = 0; SOURCE(4226, 23) (void) (XR_Broadcast((word) (( (bPt) (* (( (ptr) formal_c0123)+4) ))+44))); }; SOURCE(4254, 49) if ((v_v5348 != 0)) { SOURCE(4270, 33) { word pd52; pd52 = (* (( (ptr) (* (( (ptr) gf_c0122)+57)/* var_c16416 */ ))+24) ); (void) ( *( (fPt) ((* (ptr) pd52 ))))(v_v5348, pd52); }; }; }; return(0); } static word LockDocAndTdd_P420(tdd_v4384, who_v4412, access_v4440, interrupt_v4468, defer_v4496) word tdd_v4384; word who_v4412; word access_v4440; word interrupt_v4468; word defer_v4496; { register ptr gf_c17152 = (ptr) &globalframe; word lock_v4540; /* LockDocAndTdd: */ SOURCE(4309, 611) SOURCE(4309, 611) lock_v4540 = 0; SOURCE(4475, 88) { word pd53; pd53 = (* (( (ptr) (* (( (ptr) gf_c17152)+56)/* var_c16320 */ ))+5) ); if ((0 == (word) ( *( (fPt) ((* (ptr) pd53 ))))(tdd_v4384, (* (( (ptr) gf_c17152)+23) ), interrupt_v4468, defer_v4496, pd53) )) { SOURCE(4551, 12) return(0); }; }; SOURCE(4565, 355) lab_L100023: ; SOURCE(4565, 355) { word doc_v5524; SOURCE(4568, 28) doc_v5524 = (* (ptr) tdd_v4384 ); SOURCE(4598, 25) { word pd54; pd54 = (* (( (ptr) (* (( (ptr) gf_c17152)+56)/* var_c16320 */ ))+6) ); (void) ( *( (fPt) ((* (ptr) pd54 ))))(tdd_v4384, pd54); }; SOURCE(4677, 28) if ((doc_v5524 == 0)) { SOURCE(4693, 12) return(0); }; SOURCE(4707, 29) lock_v4540 = (word) Lock_P120(doc_v5524, who_v4412, access_v4440); SOURCE(4738, 112) { word pd55; pd55 = (* (( (ptr) (* (( (ptr) gf_c17152)+56)/* var_c16320 */ ))+5) ); if ((0 == (word) ( *( (fPt) ((* (ptr) pd55 ))))(tdd_v4384, (* (( (ptr) gf_c17152)+24) ), interrupt_v4468, defer_v4496, pd55) )) { SOURCE(4816, 19) (void) UnlockIt_P360(lock_v4540, doc_v5524); SOURCE(4837, 13) return(0); }; }; SOURCE(4853, 29) if (((* (ptr) tdd_v4384 ) == doc_v5524)) { SOURCE(4876, 6) return(lock_v4540); }; SOURCE(4901, 19) (void) UnlockIt_P360(lock_v4540, doc_v5524); }; goto lab_L100023; } static void UnlockDocAndTdd_P480(tdd_v4600) word tdd_v4600; { register ptr gf_c17184 = (ptr) &globalframe; /* UnlockDocAndTdd: */ SOURCE(4991, 136) SOURCE(5063, 37) if (((* (ptr) tdd_v4600 ) != 0)) { SOURCE(5084, 16) (void) Unlock_P300((* (ptr) (tdd_v4600) )); }; SOURCE(5102, 25) { word pd56; pd56 = (* (( (ptr) (* (( (ptr) gf_c17184)+56)/* var_c16320 */ ))+6) ); (void) ( *( (fPt) ((* (ptr) pd56 ))))(tdd_v4600, pd56); }; } static word WaitingForWrite_P540(lock_v4660) word lock_v4660; { word var_c4704; /* WaitingForWrite: */ SOURCE(5133, 97) SOURCE(5197, 33) return(( (int)(* (( (ptr) lock_v4660)+4) ) > (int)0)); } static word GetRoot_P600(viewer_v4764) word viewer_v4764; { word root_v4808; /* GetRoot: */ SOURCE(5236, 159) SOURCE(5236, 159) root_v4808 = 0; SOURCE(5294, 13) root_v4808 = viewer_v4764; SOURCE(5309, 86) if ((root_v4808 != 0)) { SOURCE(5328, 67) lab_L100026: ; SOURCE(5328, 67) { word next_v5568; SOURCE(5331, 26) next_v5568 = (* (( (ptr) root_v4808)+22) ); SOURCE(5359, 19) if ((next_v5568 == 0)) { SOURCE(5378, 4) goto lab_L100025; }; SOURCE(5384, 11) root_v4808 = next_v5568; }; goto lab_L100026; lab_L100025: ; }; SOURCE(5236, 159) return(root_v4808); } static word LockedGetLock_P720(formal_c0142, formal_c0143) word formal_c0142; word formal_c0143; { W7 var_c17216; /* declaration of lock_v4972 skipped */ /* declaration of root_v5000 skipped */ /* declaration of var_c02 skipped */ word var_c5044; var_c17216.f4/* lock_v4972 */ = formal_c0142; var_c17216.f5/* root_v5000 */ = formal_c0143; /* LockedGetLock: */ SOURCE(5665, 397) (void) (XR_MonitorEntry(var_c17216.f4/* lock_v4972 */ )); SOURCE(5749, 313) { word var_c03; { word var_c0130; var_c0130 = (word) &var_c17216; var_c03 = (word) XR_Enable(( ((word) (fPt) NoName_Q1440) ), ( ((word) (fPt) NoName_Q1500) ), var_c0130); }; /* removed trivial cond node */ }; return(var_c17216.f6/* var_c02 */ ); } static word NoName_Q1440(formal_c0127) word formal_c0127; { register ptr gf_c0126 = (ptr) &globalframe; SOURCE(5772, 31) if (((* (( (ptr) formal_c0127)+5) ) == 0)) { SOURCE(5791, 12) (void) (XR_MonitorExit(* (( (ptr) formal_c0127)+4) )); (* (( (ptr) formal_c0127)+6) ) = 0; return(1); }; SOURCE(5805, 41) if (((* (( (ptr) formal_c0127)+5) ) == (* (( (ptr) gf_c0126)+9)/* lastRoot_v3420 */ ))) { SOURCE(5829, 17) { word var_c16736; var_c16736 = (* (( (ptr) gf_c0126)+10)/* lastLock_v3448 */ ); (void) (XR_MonitorExit(* (( (ptr) formal_c0127)+4) )); (* (( (ptr) formal_c0127)+6) ) = var_c16736; return(1); }; }; SOURCE(5848, 15) (* (( (ptr) gf_c0126)+9)/* lastRoot_v3420 */ ) = (* (( (ptr) formal_c0127)+5) ); SOURCE(5865, 57) { word pd57; pd57 = (* (( (ptr) (* (( (ptr) gf_c0126)+55)/* var_c16288 */ ))+5) ); (* (( (ptr) gf_c0126)+10)/* lastLock_v3448 */ ) = XR_Narrow((word) ( *( (fPt) ((* (ptr) pd57 ))))((* (( (ptr) formal_c0127)+5) ), (* (( (ptr) gf_c0126)+22) ), pd57), (* (( (ptr) gf_c0126)+11) )); }; SOURCE(5924, 40) if (((* (( (ptr) gf_c0126)+10)/* lastLock_v3448 */ ) != 0)) { SOURCE(5947, 17) { word var_c16768; var_c16768 = (* (( (ptr) gf_c0126)+10)/* lastLock_v3448 */ ); (void) (XR_MonitorExit(* (( (ptr) formal_c0127)+4) )); (* (( (ptr) formal_c0127)+6) ) = var_c16768; return(1); }; }; SOURCE(5966, 26) { word var_c16800; var_c16800 = XR_NewObject(68, (* (( (ptr) gf_c0126)+11) )); (* (W6Pt) (( (ptr) var_c16800)+11) ) = (* (W6Pt) (( (ptr) gf_c0126)+49)/* var_c16224 */ ); (* (( (ptr) gf_c0126)+10)/* lastLock_v3448 */ ) = var_c16800; }; SOURCE(5994, 48) { word pd58; pd58 = (* (( (ptr) (* (( (ptr) gf_c0126)+55)/* var_c16288 */ ))+4) ); (void) ( *( (fPt) ((* (ptr) pd58 ))))((* (( (ptr) formal_c0127)+5) ), (* (( (ptr) gf_c0126)+22) ), (* (( (ptr) gf_c0126)+10) /* lastLock_v3448 */ ), pd58); }; SOURCE(6044, 18) { word var_c16832; var_c16832 = (* (( (ptr) gf_c0126)+10)/* lastLock_v3448 */ ); (void) (XR_MonitorExit(* (( (ptr) formal_c0127)+4) )); (* (( (ptr) formal_c0127)+6) ) = var_c16832; return(1); }; /* c2c skipped dead code */ } static void NoName_Q1500(formal_c0103, formal_c200008, formal_c200009, formal_c200010, formal_c200011) word formal_c0103; word formal_c200008; word formal_c200009; word formal_c200010; word formal_c200011; { if ((formal_c200009 == XR_Unwind)) { (void) (XR_MonitorExit(* (( (ptr) formal_c200008)+4) )); }; (* (ptr) formal_c0103 ) = 0; (* (( (ptr) formal_c0103)+1) ) = 0; return; } static void NoName_Q1560(formal_c0108, formal_c200004, formal_c200005, formal_c200006, formal_c200007) word formal_c0108; word formal_c200004; word formal_c200005; word formal_c200006; word formal_c200007; { if ((formal_c200005 == XR_Unwind)) { (void) (XR_MonitorExit(* (( (ptr) formal_c200004)+4) )); }; (* (ptr) formal_c0108 ) = 0; (* (( (ptr) formal_c0108)+1) ) = 0; return; } static void NoName_Q1620(formal_c0113, formal_c200000, formal_c200001, formal_c200002, formal_c200003) word formal_c0113; 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_c0113 ) = 0; (* (( (ptr) formal_c0113)+1) ) = 0; return; } /* file: TEditLocksImpl, module: TEditLocksImpl, compiled at: February 27, 1992 5:56:15 pm PST */ extern void XR_install_TEditLocksImpl() { NoName_Q1260(); } extern void XR_run_TEditLocksImpl() { XR_Start(&globalframe); }