mirror of
https://github.com/reactos/wine.git
synced 2025-02-02 10:12:01 +00:00
cabinet: Use helper function to remove duplicate code.
This commit is contained in:
parent
6bdfc2fa2c
commit
70cfa0c36e
@ -2258,6 +2258,25 @@ static int fdi_decomp(const struct fdi_file *fi, int savemode, fdi_decomp_state
|
||||
return DECR_OK;
|
||||
}
|
||||
|
||||
static void free_decompression_temps(HFDI hfdi, struct fdi_folder *fol,
|
||||
fdi_decomp_state *decomp_state)
|
||||
{
|
||||
switch (fol->comp_type & cffoldCOMPTYPE_MASK) {
|
||||
case cffoldCOMPTYPE_LZX:
|
||||
if (LZX(window)) {
|
||||
PFDI_FREE(hfdi, LZX(window));
|
||||
LZX(window) = NULL;
|
||||
}
|
||||
break;
|
||||
case cffoldCOMPTYPE_QUANTUM:
|
||||
if (QTM(window)) {
|
||||
PFDI_FREE(hfdi, QTM(window));
|
||||
QTM(window) = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* FDICopy (CABINET.22)
|
||||
*
|
||||
@ -2839,21 +2858,7 @@ BOOL __cdecl FDICopy(
|
||||
}
|
||||
}
|
||||
|
||||
/* free decompression temps */
|
||||
switch (fol->comp_type & cffoldCOMPTYPE_MASK) {
|
||||
case cffoldCOMPTYPE_LZX:
|
||||
if (LZX(window)) {
|
||||
PFDI_FREE(hfdi, LZX(window));
|
||||
LZX(window) = NULL;
|
||||
}
|
||||
break;
|
||||
case cffoldCOMPTYPE_QUANTUM:
|
||||
if (QTM(window)) {
|
||||
PFDI_FREE(hfdi, QTM(window));
|
||||
QTM(window) = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
free_decompression_temps(hfdi, fol, decomp_state);
|
||||
|
||||
while (decomp_state) {
|
||||
fdi_decomp_state *prev_fds;
|
||||
@ -2887,21 +2892,7 @@ BOOL __cdecl FDICopy(
|
||||
|
||||
bail_and_fail: /* here we free ram before error returns */
|
||||
|
||||
/* free decompression temps */
|
||||
switch (fol->comp_type & cffoldCOMPTYPE_MASK) {
|
||||
case cffoldCOMPTYPE_LZX:
|
||||
if (LZX(window)) {
|
||||
PFDI_FREE(hfdi, LZX(window));
|
||||
LZX(window) = NULL;
|
||||
}
|
||||
break;
|
||||
case cffoldCOMPTYPE_QUANTUM:
|
||||
if (QTM(window)) {
|
||||
PFDI_FREE(hfdi, QTM(window));
|
||||
QTM(window) = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
free_decompression_temps(hfdi, fol, decomp_state);
|
||||
|
||||
if (filehf) PFDI_CLOSE(hfdi, filehf);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user