/* metadata key,value list object */ Jbig2Metadata *jbig2_metadata_new(Jbig2Ctx *ctx, Jbig2Encoding encoding) { Jbig2Metadata *md = jbig2_new(ctx, Jbig2Metadata, 1); if (md != NULL) { md->encoding = encoding; md->entries = 0; md->max_entries = 4; md->keys = jbig2_new(ctx, char*, md->max_entries); md->values = jbig2_new(ctx, char*, md->max_entries); if (md->keys == NULL || md->values == NULL) { jbig2_error(ctx, JBIG2_SEVERITY_FATAL, -1, "failed to allocate storage for metadata keys/values"); jbig2_metadata_free(ctx, md); md = NULL; } } else {
/* metadata key,value list object */ Jbig2Metadata *jbig2_metadata_new(Jbig2Ctx *ctx, Jbig2Encoding encoding) { Jbig2Metadata *md = jbig2_alloc(ctx->allocator, sizeof(Jbig2Metadata)); if (md != NULL) { md->encoding = encoding; md->entries = 0; md->max_entries = 4; md->keys = jbig2_alloc(ctx->allocator, md->max_entries*sizeof(char*)); md->values = jbig2_alloc(ctx->allocator, md->max_entries*sizeof(char*)); if (md->keys == NULL || md->values == NULL) { jbig2_metadata_free(ctx, md); md = NULL; } } return md; }