Intel Extensible Firmware Interface User Manual

Page 977

Advertising
background image

Compression Source Code

Version 1.10

12/01/02

H-13


for ( ; ; ) {
if (r >= WNDSIZ) {
j = MAXMATCH;
mMatchPos = r;
} else {
j = mLevel[r];
mMatchPos = (NODE)(mPosition[r] & ~PERC_FLAG);
}
if (mMatchPos >= mPos) {
mMatchPos -= WNDSIZ;
}
t1 = &mText[mPos + mMatchLen];
t2 = &mText[mMatchPos + mMatchLen];
while (mMatchLen < j) {
if (*t1 != *t2) {
Split(r);
return;
}
mMatchLen++;
t1++;
t2++;
}
if (mMatchLen >= MAXMATCH) {
break;
}
mPosition[r] = mPos;
q = r;
if ((r = Child(q, *t1)) == NIL) {
MakeChild(q, *t1, mPos);
return;
}
mMatchLen++;
}
t = mPrev[r];
mPrev[mPos] = t;
mNext[t] = mPos;
t = mNext[r];
mNext[mPos] = t;
mPrev[t] = mPos;
mParent[mPos] = q;
mParent[r] = NIL;

//
// Special usage of ’next’
//
mNext[r] = mPos;

}

STATIC
VOID
DeleteNode ()
/*++

Routine Description:

Delete outdated string info. (The Usage of PERC_FLAG
ensures a clean deletion)

Advertising