struct zip * _zip_new(struct zip_error *error) { struct zip *za; za = (struct zip *)malloc(sizeof(struct zip)); if (!za) { _zip_error_set(error, ZIP_ER_MEMORY, 0); return NULL; } za->zn = NULL; za->zp = NULL; _zip_error_init(&za->error); za->cdir = NULL; za->ch_comment = NULL; za->ch_comment_len = -1; za->nentry = za->nentry_alloc = 0; za->entry = NULL; za->nfile = za->nfile_alloc = 0; za->file = NULL; za->flags = za->ch_flags = 0; za->default_password = NULL; return za; }
static struct zip_file * _zip_file_new(struct zip *za) { struct zip_file *zf, **file; int n; if ((zf=(struct zip_file *)malloc(sizeof(struct zip_file))) == NULL) { _zip_error_set(&za->error, ZIP_ER_MEMORY, 0); return NULL; } if (za->nfile >= za->nfile_alloc-1) { n = za->nfile_alloc + 10; file = (struct zip_file **)realloc(za->file, n*sizeof(struct zip_file *)); if (file == NULL) { _zip_error_set(&za->error, ZIP_ER_MEMORY, 0); free(zf); return NULL; } za->nfile_alloc = n; za->file = file; } za->file[za->nfile++] = zf; zf->za = za; _zip_error_init(&zf->error); zf->eof = 0; zf->src = NULL; return zf; }
static struct zip_file * _zip_file_new(struct zip *za) { struct zip_file *zf, **file; int n; if ((zf=(struct zip_file *)malloc(sizeof(struct zip_file))) == NULL) { _zip_error_set(&za->error, ZIP_ER_MEMORY, 0); return NULL; } if (za->nfile >= za->nfile_alloc-1) { n = za->nfile_alloc + 10; file = (struct zip_file **)realloc(za->file, n*sizeof(struct zip_file *)); if (file == NULL) { _zip_error_set(&za->error, ZIP_ER_MEMORY, 0); free(zf); return NULL; } za->nfile_alloc = n; za->file = file; } za->file[za->nfile++] = zf; zf->za = za; _zip_error_init(&zf->error); zf->flags = 0; zf->crc = crc32(0L, Z_NULL, 0); zf->crc_orig = 0; zf->method = -1; zf->bytes_left = zf->cbytes_left = 0; zf->fpos = 0; zf->buffer = NULL; zf->zstr = NULL; return zf; }