comparison src/ls-mat5.cc @ 11580:e306683a7e97

read_mat5_binary_element: improve diagnostic if uncompress fails
author John W. Eaton <jwe@octave.org>
date Thu, 20 Jan 2011 04:05:18 -0500
parents fd0a3ac60b0e
children 12df7854fa7c
comparison
equal deleted inserted replaced
11579:5c680b69b4e2 11580:e306683a7e97
545 int err = uncompress (reinterpret_cast<Bytef *> (const_cast<char *> (outbuf.c_str ())), 545 int err = uncompress (reinterpret_cast<Bytef *> (const_cast<char *> (outbuf.c_str ())),
546 &destLen, reinterpret_cast<Bytef *> (inbuf), 546 &destLen, reinterpret_cast<Bytef *> (inbuf),
547 element_length); 547 element_length);
548 548
549 if (err != Z_OK) 549 if (err != Z_OK)
550 error ("load: error uncompressing data element"); 550 {
551 std::string msg;
552 switch (err)
553 {
554 case Z_STREAM_END:
555 msg = "stream end";
556 break;
557
558 case Z_NEED_DICT:
559 msg = "need dict";
560 break;
561
562 case Z_ERRNO:
563 msg = "errno case";
564 break;
565
566 case Z_STREAM_ERROR:
567 msg = "stream error";
568 break;
569
570 case Z_DATA_ERROR:
571 msg = "data error";
572 break;
573
574 case Z_MEM_ERROR:
575 msg = "mem error";
576 break;
577
578 case Z_BUF_ERROR:
579 msg = "buf error";
580 break;
581
582 case Z_VERSION_ERROR:
583 msg = "version error";
584 break;
585 }
586
587 error ("load: error uncompressing data element (%s from zlib)",
588 msg.c_str ());
589 }
551 else 590 else
552 { 591 {
553 std::istringstream gz_is (outbuf); 592 std::istringstream gz_is (outbuf);
554 retval = read_mat5_binary_element (gz_is, filename, 593 retval = read_mat5_binary_element (gz_is, filename,
555 swap, global, tc); 594 swap, global, tc);