Branch Coverage

src/pdfmake_doc.c
Criterion Covered Total %
branch 102 172 59.3


line true false branch
26 11200 350 for (i = 0; i < len; i++) {
39 0 457 if (!doc) return NULL;
42 0 457 if (!doc->arena) {
48 0 457 if (!doc->objects) {
67 0 347 if (!doc) return;
69 370 347 for (i = 0; i < doc->page_count; i++) {
70 370 0 if (doc->pages[i] && doc->pages[i]->annots) {
26 344 if (doc->pages[i] && doc->pages[i]->annots) {
79 6 341 if (doc->attachments) {
80 25 6 for (i = 0; i < doc->attach_count; i++) {
82 25 0 if (att) {
93 2312 0 return doc ? doc->arena : NULL;
104 0 0 if (!new_arr) return 0;
118 0 1707 if (!doc) return 0;
121 0 1707 if (doc->obj_count >= doc->obj_cap) {
122 0 0 if (!doc_grow_objects(doc)) return 0;
141 12763 0 if (!doc || num == 0 || num > doc->obj_count) return NULL;
12754 9 if (!doc || num == 0 || num > doc->obj_count) return NULL;
3 12751 if (!doc || num == 0 || num > doc->obj_count) return NULL;
143 0 12751 if (!doc->objects[idx].in_use) return NULL;
149 0 0 if (doc && num > 0 && num <= doc->obj_count) {
0 0 if (doc && num > 0 && num <= doc->obj_count) {
0 0 if (doc && num > 0 && num <= doc->obj_count) {
160 0 387 if (!doc) return;
166 0 348 if (!doc) return;
188 0 175 if (!doc) return;
222 0 5 if (!doc) return PDFMAKE_EINVAL;
223 5 0 if (algorithm < PDFMAKE_CRYPT_RC4_40 || algorithm > PDFMAKE_CRYPT_AES_256) {
0 5 if (algorithm < PDFMAKE_CRYPT_RC4_40 || algorithm > PDFMAKE_CRYPT_AES_256) {
227 5 0 u = user_passwd ? user_passwd : "";
228 5 0 o = owner_passwd ? owner_passwd : u;
256 0 5 if (!ctx) return PDFMAKE_EINVAL;
259 0 5 if (d.kind != PDFMAKE_DICT) return PDFMAKE_ENOMEM;
278 3 2 ou_len = (ctx->R == 6) ? 48 : 32;
284 3 2 if (ctx->R == 6) {
295 4 1 if (ctx->V >= 4) {
303 3 1 pdfmake_name_cstr(a, ctx->V == 5 ? "AESV3" : "AESV2"));
320 0 5 if (num == 0) return PDFMAKE_ENOMEM;
328 174 0 if (!doc || !doc->enc_requested || doc->encrypt_num != 0) {
5 169 if (!doc || !doc->enc_requested || doc->encrypt_num != 0) {
0 5 if (!doc || !doc->enc_requested || doc->encrypt_num != 0) {
331 5 0 if (!doc->id_set) pdfmake_doc_generate_id(doc);
335 0 5 if (!doc->encryption) return PDFMAKE_ENOMEM;
337 0 5 if (pdfmake_crypt_setup(doc->encryption, doc->enc_algo,
369 5 169 (doc->enc_requested && doc->encryption) ? doc->encryption : NULL;
5 0 (doc->enc_requested && doc->encryption) ? doc->encryption : NULL;
373 1622 174 for (i = 0; i < doc->obj_count; i++) {
375 0 1622 if (!ind->in_use) continue;
383 0 1622 if (err != PDFMAKE_OK) return err;
387 39 1583 if (crypt) {
394 0 1622 if (err != PDFMAKE_OK) return err;
398 0 1622 if (err != PDFMAKE_OK) return err;
437 0 174 if (err != PDFMAKE_OK) return err;
441 0 174 if (err != PDFMAKE_OK) return err;
444 1622 174 for (i = 0; i < doc->obj_count; i++) {
447 1622 0 if (ind->in_use) {
458 0 1622 if (err != PDFMAKE_OK) return err;
473 165 9 if (!doc->id_set) {
478 0 174 if (err != PDFMAKE_OK) return err;
482 0 174 if (err != PDFMAKE_OK) return err;
485 174 0 if (doc->root_num > 0) {
489 0 174 if (err != PDFMAKE_OK) return err;
493 174 0 if (doc->info_num > 0) {
497 0 174 if (err != PDFMAKE_OK) return err;
501 5 169 if (doc->encrypt_num > 0) {
504 0 5 if (err != PDFMAKE_OK) return err;
509 0 174 if (err != PDFMAKE_OK) return err;
512 2784 174 for (i = 0; i < 16; i++) {
514 0 2784 if (err != PDFMAKE_OK) return err;
518 0 174 if (err != PDFMAKE_OK) return err;
521 2784 174 for (i = 0; i < 16; i++) {
523 0 2784 if (err != PDFMAKE_OK) return err;
527 0 174 if (err != PDFMAKE_OK) return err;
531 0 174 if (err != PDFMAKE_OK) return err;
536 0 174 if (err != PDFMAKE_OK) return err;
540 0 174 if (err != PDFMAKE_OK) return err;
551 174 0 if (!doc || !out) return PDFMAKE_EINVAL;
0 174 if (!doc || !out) return PDFMAKE_EINVAL;
554 163 11 if (doc->page_count > 0 && !doc->finalized) {
163 0 if (doc->page_count > 0 && !doc->finalized) {
556 0 163 if (err != PDFMAKE_OK) return err;
567 0 174 if (err != PDFMAKE_OK) return err;
571 0 174 if (err != PDFMAKE_OK) return err;
575 0 174 if (err != PDFMAKE_OK) return err;
579 0 174 if (err != PDFMAKE_OK) return err;
583 0 174 if (err != PDFMAKE_OK) return err;