/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: February 3, 1993 12:09:36 pm PST */
/* C2C version: January 29, 1993 (sun4) */
/* ref-counting: off */
/* file: XlFinalizePrivateImpl, module: XlFinalizePrivateImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3297806125,2302362170] XlFinalizePrivateImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
static void NoName←Q696();
static void XlFinalizePrivateImpl←P0();
static void Init←P60();
static word FinalizationStuff←P120();
static void IncRefCount←P180();
static void DecRefCount←P240();
static void TryCloseConnection←P300();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\304\220\207\055\300\211\073\102\072\100\200\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\007\000"};
static struct {unsigned f; char r[4];} string3 = {65540, "\241\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\126\304\000\000"};
static struct {unsigned f; char r[60];} string5 = {3735609, "\006\023\040\001\070\001\100\100\001\100\104\001\100\110\001\100\140\001\100\144\001\100\150\001\100\154\001\100\160\001\100\164\001\100\170\001\100\174\001\100\200\001\100\224\001\100\234\001\100\240\001\100\244\001\100\250\001\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\123\320\000\000"};
static struct {unsigned f; char r[60];} string7 = {3801146, "\007\100\200\040\047\004\100\354\004\200\140\054\004\014\015\015\015\015\015\015\015\015\004\140\014\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\013\004\100\114\004\102\354\004\100\314\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\304\220\207\055\300\211\073\102\072\100\164\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static unsigned string10 = 1483472896;
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[32];} string12 = {1966112, "\211\022\021\103\157\156\156\145\143\164\151\157\156\120\162\151\166\141\164\145\300\351\276\264\273\300\115\104\320\264\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\012\063\155\016\300\130\140\234\375\100\164\000\000"};
static struct {unsigned f; char r[40];} string14 = {2424869, "\006\016\000\001\004\001\010\001\014\001\020\001\024\001\030\001\034\001\040\001\044\001\060\001\070\010\000\004\100\100\001\101\070\001\101\074\001\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\012\063\155\016\300\130\140\234\375\100\150\000\000"};
static struct {unsigned f; char r[32];} string16 = {1835040, "\211\020\017\106\151\156\141\154\151\172\141\164\151\157\156\122\145\160\300\012\063\155\016\300\130\140\234\375\000\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\156\242\124\004\300\131\031\215\125\100\150\000\000"};
static struct {
word f0[17]; word f17; word f18; word f19;
word f20; word f21; word f22; word f23;
word f24; word f25; word f26; word f27;
word f28[5];
} globalframe = {
{0}, (word) TryCloseConnection←P300, 0, (word) DecRefCount←P240,
0, (word) IncRefCount←P180, 0, (word) FinalizationStuff←P120,
0, (word) Init←P60, 0, (word) XlFinalizePrivateImpl←P0,
{0}
};
static void NoName←Q696()
{
register ptr gf←c048 = (ptr) &globalframe;
word var←c21296;
(* (( (ptr) gf←c048)+9) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c048)+10) ) = (word) XR←GetTypeIndexS((word) (&string3));
(* (( (ptr) gf←c048)+11) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
(* (( (ptr) gf←c048)+12) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
(void) XR←DeclareGlobalFrame((word) "XlFinalizePrivateImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string8)), (word) (
( (bPt) gf←c048)+108)/* var←c20912 */ );
var←c21296 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string9)), 16);
(* (( (ptr) gf←c048)+30)/* var←c21136 */ ) = var←c21296;
(void) XR←ImportProcS(var←c21296, 67636226);
(void) XR←ImportProcS(var←c21296, 67635202);
(void) XR←ImportProcS(var←c21296, 67897859);
var←c21296 = (word) XR←ImportInterface((word) &string10, (word) XR←GetTypeIndexS((word) (&string11)), 218);
(* (( (ptr) gf←c048)+29)/* var←c21008 */ ) = var←c21296;
(void) XR←ImportProcS(var←c21296, 271873);
(void) XR←ImportProcS(var←c21296, 1063940);
(void) XR←ImportProcS(var←c21296, 67910403);
var←c21296 = (word) XR←ExportInterface((word) &string10, (word) XR←GetTypeIndexS((word) (&string11)), 218);
(* (( (ptr) gf←c048)+31)/* var←c21328 */ ) = var←c21296;
(void) XR←ExportProcS(var←c21296, (word) (( (bPt) gf←c048)+84)/* var←c20816 */ , 533506);
(void) XR←ExportProcS(var←c21296, (word) (( (bPt) gf←c048)+76)/* var←c20784 */ , 533762);
(void) XR←ExportType((word) "ConnectionPrivate", (word) XR←GetTypeIndexS((word) (&string12)), (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14)
);
var←c21296 = (word) XR←ExportInterface((word) "XlPrivateTypes", (word) XR←GetTypeIndexS((word) (&string15)), 7);
(* (( (ptr) gf←c048)+32)/* var←c21360 */ ) = var←c21296;
(void) XR←ExportType((word) "FinalizationRep", (word) XR←GetTypeIndexS((word) (&string16)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
);
var←c21296 = (word) XR←ExportInterface((word) "XlFinalizePrivate", (word) XR←GetTypeIndexS((word) (&string17)), 1);
(* (( (ptr) gf←c048)+31)/* var←c21328 */ ) = var←c21296;
(void) XR←ExportProcS(var←c21296, (word) (( (bPt) gf←c048)+100)/* var←c20880 */ , 524290);
}
static void XlFinalizePrivateImpl←P0(formal←c015, formal←c014)
word formal←c015;
word formal←c014;
{
/* XlFinalizePrivateImpl: */
}
static void Init←P60(c←v2956, finalMatch←v2984)
word c←v2956;
word finalMatch←v2984;
{
register ptr gf←c21392 = (ptr) &globalframe;
word cPriv←v3332;
/* Init: */
SOURCE(443, 293)
SOURCE(512, 60)
cPriv←v3332 = (* (( (ptr) c←v2956)+24) );
SOURCE(574, 162)
{
word var←c20944;
{
word var←c20976;
word var←c21040;
word var←c21168;
{
word pd18;
pd18 = (* (( (ptr) (* (( (ptr) gf←c21392)+29)/* var←c21008 */ ))+63) );
var←c20976 = (word) ( *( (fPt) ((* (ptr) pd18 ))))(0, 0, 0, pd18);
};
{
word var←c21072;
{
word var←c21104;
var←c21104 = XR←NewObject(4, (* (( (ptr) gf←c21392)+10) ));
(* (ptr) var←c21104 ) = 1;
var←c21072 = var←c21104;
};
{
word pd19;
pd19 = (* (( (ptr) (* (( (ptr) gf←c21392)+30)/* var←c21136 */ ))+14) );
var←c21040 = (word) ( *( (fPt) ((* (ptr) pd19 ))))(0, 0, var←c21072, pd19);
};
};
var←c21168 = XR←NewObject(12, (* (( (ptr) gf←c21392)+9) ));
(* (ptr) var←c21168 ) = finalMatch←v2984;
(* (( (ptr) var←c21168)+1) ) = var←c20976;
(* (( (ptr) var←c21168)+2) ) = var←c21040;
var←c20944 = var←c21168;
};
(* (( (ptr) cPriv←v3332)+7) ) = var←c20944;
};
}
static word FinalizationStuff←P120(c←v3044)
word c←v3044;
{
word var←c3088;
/* FinalizationStuff: */
SOURCE(741, 211)
SOURCE(741, 211)
var←c3088 = 0;
SOURCE(824, 128)
if ((c←v3044 != 0)) {
SOURCE(838, 116)
{
word cPriv←v3388;
SOURCE(840, 60)
cPriv←v3388 = (* (( (ptr) c←v3044)+24) );
SOURCE(902, 50)
if ((cPriv←v3388 != 0)) {
SOURCE(920, 32)
return((* (( (ptr) cPriv←v3388)+7) ));
};
};
};
SOURCE(741, 211)
return(var←c3088);
}
static void IncRefCount←P180(c←v3160, object←v3188)
word c←v3160;
word object←v3188;
{
register ptr gf←c21424 = (ptr) &globalframe;
word finalizationStuff←v3444;
/* IncRefCount: */
SOURCE(961, 395)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c21424)+16)/* LOCK←v2552 */ ));
SOURCE(1034, 61)
finalizationStuff←v3444 = (word) FinalizationStuff←P120(c←v3160);
SOURCE(1097, 259)
if ((finalizationStuff←v3444 != 0)) {
SOURCE(1127, 231)
{
word count←v3500;
SOURCE(1129, 83)
{
word pd20;
pd20 = (* (( (ptr) (* (( (ptr) gf←c21424)+30)/* var←c21136 */ ))+12) );
count←v3500 = XR←Narrow((word) ( *( (fPt) ((* (ptr) pd20 ))))((* (( (ptr) finalizationStuff←v3444)+2) ), object←v3188, pd20)
, (* (( (ptr) gf←c21424)+10) ));
};
SOURCE(1214, 142)
if ((count←v3500 != 0)) {
SOURCE(1233, 23)
(* (ptr) count←v3500 ) = ((* (ptr) count←v3500 ) + 1);
}
else {
SOURCE(1256, 100)
{
word var←c21200;
{
word var←c21232;
var←c21232 = XR←NewObject(4, (* (( (ptr) gf←c21424)+10) ));
(* (ptr) var←c21232 ) = 1;
var←c21200 = var←c21232;
};
{
word pd21;
pd21 = (* (( (ptr) (* (( (ptr) gf←c21424)+30)/* var←c21136 */ ))+14) );
(* (( (ptr) finalizationStuff←v3444)+2) ) = (word) ( *( (fPt) ((* (ptr) pd21 ))))((* (( (ptr) finalizationStuff←v3444)+2)
), object←v3188, var←c21200, pd21);
};
};
};
};
};
SOURCE(961, 395)
(void) (XR←MonitorExit((word) (( (bPt) gf←c21424)+16)/* LOCK←v2552 */ ));
return;
}
static void DecRefCount←P240(c←v3264, object←v3292)
word c←v3264;
word object←v3292;
{
register ptr gf←c21456 = (ptr) &globalframe;
word finalizationStuff←v3556;
/* DecRefCount: */
SOURCE(1364, 668)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c21456)+16)/* LOCK←v2552 */ ));
SOURCE(1437, 61)
finalizationStuff←v3556 = (word) FinalizationStuff←P120(c←v3264);
SOURCE(1500, 532)
if ((finalizationStuff←v3556 != 0)) {
SOURCE(1530, 507)
{
word count←v3612;
SOURCE(1532, 83)
{
word pd22;
pd22 = (* (( (ptr) (* (( (ptr) gf←c21456)+30)/* var←c21136 */ ))+12) );
count←v3612 = XR←Narrow((word) ( *( (fPt) ((* (ptr) pd22 ))))((* (( (ptr) finalizationStuff←v3556)+2) ), object←v3292, pd22)
, (* (( (ptr) gf←c21456)+10) ));
};
SOURCE(1617, 150)
if ((count←v3612 != 0)) {
SOURCE(1637, 130)
if (((* (ptr) count←v3612 ) != 1)) {
SOURCE(1655, 25)
(* (ptr) count←v3612 ) = ((* (ptr) count←v3612 ) - 1);
}
else {
SOURCE(1680, 87)
{
word pd23;
pd23 = (* (( (ptr) (* (( (ptr) gf←c21456)+30)/* var←c21136 */ ))+16) );
(* (( (ptr) finalizationStuff←v3556)+2) ) = (word) ( *( (fPt) ((* (ptr) pd23 ))))((* (( (ptr) finalizationStuff←v3556)+2)
), object←v3292, pd23);
};
};
};
SOURCE(1773, 259)
if (((* (( (ptr) finalizationStuff←v3556)+2) ) == 0)) {
SOURCE(1813, 221)
{
word tq←v3668 = 0;
word finalMatch←v3696;
SOURCE(1827, 51)
finalMatch←v3696 = (* (ptr) finalizationStuff←v3556 );
SOURCE(1880, 41)
if ((finalMatch←v3696 != 0)) {
SOURCE(1903, 18)
tq←v3668 = (* (( (ptr) finalMatch←v3696)+2) );
};
SOURCE(1924, 52)
if ((tq←v3668 == 0)) {
SOURCE(1939, 37)
tq←v3668 = (* (( (ptr) finalizationStuff←v3556)+1) );
};
SOURCE(1979, 53)
{
word pd24;
pd24 = (* (( (ptr) (* (( (ptr) gf←c21456)+29)/* var←c21008 */ ))+64) );
(void) ( *( (fPt) ((* (ptr) pd24 ))))(tq←v3668, (word) (( (bPt) gf←c21456)+68)/* var←c20752 */ , c←v3264, 0, pd24);
};
};
};
};
};
SOURCE(1364, 668)
(void) (XR←MonitorExit((word) (( (bPt) gf←c21456)+16)/* LOCK←v2552 */ ));
return;
}
static void TryCloseConnection←P300(event←v6380, clientData←v6408, tq←v6436)
word event←v6380;
word clientData←v6408;
word tq←v6436;
{
register ptr gf←c21488 = (ptr) &globalframe;
word c←v3740;
word finalizationStuff←v3768;
/* TryCloseConnection: */
SOURCE(2044, 546)
SOURCE(2085, 37)
c←v3740 = XR←Narrow(clientData←v6408, (* (( (ptr) gf←c21488)+11) ));
SOURCE(2124, 61)
finalizationStuff←v3768 = (word) FinalizationStuff←P120(c←v3740);
SOURCE(2187, 403)
if (((* (( (ptr) finalizationStuff←v3768)+2) ) == 0)) {
SOURCE(2227, 365)
{
word finalMatch←v3824;
SOURCE(2230, 51)
finalMatch←v3824 = (* (ptr) finalizationStuff←v3768 );
SOURCE(2283, 238)
if ((finalMatch←v3824 != 0)) {
SOURCE(2306, 220)
{
word proc←v3868;
SOURCE(2308, 40)
proc←v3868 = (* (ptr) finalMatch←v3824 );
SOURCE(2350, 171)
if ((proc←v3868 != 0)) {
SOURCE(2367, 156)
{
word event←v3912;
SOURCE(2369, 63)
event←v3912 = XR←NewObject(28, (* (( (ptr) gf←c21488)+12) ));
(* (( (ptr) event←v3912)+4) ) = 36;
SOURCE(2434, 20)
(* (( (ptr) event←v3912)+2) ) = c←v3740;
SOURCE(2456, 31)
(* (( (ptr) event←v3912)+5) ) = 1;
SOURCE(2489, 32)
(void) ( *( (fPt) ((* (ptr) proc←v3868 ))))(event←v3912, (* (( (ptr) finalMatch←v3824)+3) ), tq←v6436, proc←v3868);
};
};
};
};
SOURCE(2529, 61)
if (((* (( (ptr) finalizationStuff←v3768)+2) ) == 0)) {
SOURCE(2569, 21)
{
word pd25;
pd25 = (* (( (ptr) (* (( (ptr) gf←c21488)+29)/* var←c21008 */ ))+42) );
(void) ( *( (fPt) ((* (ptr) pd25 ))))(c←v3740, pd25);
};
};
};
};
}
/* file: XlFinalizePrivateImpl, module: XlFinalizePrivateImpl, compiled at: February 3, 1993 12:09:35 pm PST */
extern void XR←install←XlFinalizePrivateImpl() {
NoName←Q696();
}
extern void XR←run←XlFinalizePrivateImpl() { XR←Start(&globalframe); }