xref: /aosp_15_r20/external/zlib/gzclose.c (revision 86ee64e75fa5f8bce2c8c356138035642429cd05)
1*86ee64e7SAndroid Build Coastguard Worker /* gzclose.c -- zlib gzclose() function
2*86ee64e7SAndroid Build Coastguard Worker  * Copyright (C) 2004, 2010 Mark Adler
3*86ee64e7SAndroid Build Coastguard Worker  * For conditions of distribution and use, see copyright notice in zlib.h
4*86ee64e7SAndroid Build Coastguard Worker  */
5*86ee64e7SAndroid Build Coastguard Worker 
6*86ee64e7SAndroid Build Coastguard Worker #include "gzguts.h"
7*86ee64e7SAndroid Build Coastguard Worker 
8*86ee64e7SAndroid Build Coastguard Worker /* gzclose() is in a separate file so that it is linked in only if it is used.
9*86ee64e7SAndroid Build Coastguard Worker    That way the other gzclose functions can be used instead to avoid linking in
10*86ee64e7SAndroid Build Coastguard Worker    unneeded compression or decompression routines. */
gzclose(gzFile file)11*86ee64e7SAndroid Build Coastguard Worker int ZEXPORT gzclose(gzFile file) {
12*86ee64e7SAndroid Build Coastguard Worker #ifndef NO_GZCOMPRESS
13*86ee64e7SAndroid Build Coastguard Worker     gz_statep state;
14*86ee64e7SAndroid Build Coastguard Worker 
15*86ee64e7SAndroid Build Coastguard Worker     if (file == NULL)
16*86ee64e7SAndroid Build Coastguard Worker         return Z_STREAM_ERROR;
17*86ee64e7SAndroid Build Coastguard Worker     state = (gz_statep)file;
18*86ee64e7SAndroid Build Coastguard Worker 
19*86ee64e7SAndroid Build Coastguard Worker     return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
20*86ee64e7SAndroid Build Coastguard Worker #else
21*86ee64e7SAndroid Build Coastguard Worker     return gzclose_r(file);
22*86ee64e7SAndroid Build Coastguard Worker #endif
23*86ee64e7SAndroid Build Coastguard Worker }
24