PageRenderTime 99ms CodeModel.GetById 32ms app.highlight 59ms RepoModel.GetById 1ms app.codeStats 0ms

/src/FreeImage/Source/LibMNG/libmng_chunk_prc.c

https://bitbucket.org/cabalistic/ogredeps/
C | 2618 lines | 1818 code | 598 blank | 202 comment | 41 complexity | 0ec3a3da5ddcd4d7a05a47beaa4cd4c7 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1/* ************************************************************************** */
   2/* *             For conditions of distribution and use,                    * */
   3/* *                see copyright notice in libmng.h                        * */
   4/* ************************************************************************** */
   5/* *                                                                        * */
   6/* * project   : libmng                                                     * */
   7/* * file      : libmng_chunk_prc.c        copyright (c) 2000-2005 G.Juyn   * */
   8/* * version   : 1.0.10                                                     * */
   9/* *                                                                        * */
  10/* * purpose   : Chunk initialization & cleanup (implementation)            * */
  11/* *                                                                        * */
  12/* * author    : G.Juyn                                                     * */
  13/* *                                                                        * */
  14/* * comment   : implementation of the chunk initialization & cleanup       * */
  15/* *             routines                                                   * */
  16/* *                                                                        * */
  17/* * changes   : 0.5.1 - 05/08/2000 - G.Juyn                                * */
  18/* *             - changed strict-ANSI stuff                                * */
  19/* *             0.5.1 - 05/12/2000 - G.Juyn                                * */
  20/* *             - changed trace to macro for callback error-reporting      * */
  21/* *                                                                        * */
  22/* *             0.9.1 - 07/19/2000 - G.Juyn                                * */
  23/* *             - fixed creation-code                                      * */
  24/* *                                                                        * */
  25/* *             0.9.2 - 07/31/2000 - G.Juyn                                * */
  26/* *             - put add_chunk() inside MNG_INCLUDE_WRITE_PROCS wrapper   * */
  27/* *             0.9.2 - 08/01/2000 - G.Juyn                                * */
  28/* *             - wrapper for add_chunk() changed                          * */
  29/* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
  30/* *             - changed file-prefixes                                    * */
  31/* *                                                                        * */
  32/* *             0.9.3 - 08/26/2000 - G.Juyn                                * */
  33/* *             - added MAGN chunk                                         * */
  34/* *             0.9.3 - 10/16/2000 - G.Juyn                                * */
  35/* *             - added support for JDAA                                   * */
  36/* *                                                                        * */
  37/* *             1.0.5 - 08/19/2002 - G.Juyn                                * */
  38/* *             - B597134 - libmng pollutes the linker namespace           * */
  39/* *             - added HLAPI function to copy chunks                      * */
  40/* *             1.0.5 - 09/14/2002 - G.Juyn                                * */
  41/* *             - added event handling for dynamic MNG                     * */
  42/* *             1.0.5 - 10/04/2002 - G.Juyn                                * */
  43/* *             - fixed chunk-storage for evNT chunk                       * */
  44/* *             1.0.5 - 10/17/2002 - G.Juyn                                * */
  45/* *             - fixed issue in freeing evNT chunk                        * */
  46/* *                                                                        * */
  47/* *             1.0.6 - 07/07/2003 - G.R-P                                 * */
  48/* *             - added MNG_SKIPCHUNK_cHNK footprint optimizations         * */
  49/* *             - added MNG_NO_DELTA_PNG reduction feature                 * */
  50/* *             1.0.6 - 07/14/2003 - G.R-P                                 * */
  51/* *             - added MNG_NO_LOOP_SIGNALS_SUPPORTED conditional          * */
  52/* *             1.0.6 - 07/29/2003 - G.R-P                                 * */
  53/* *             - added conditionals around PAST chunk support             * */
  54/* *             1.0.6 - 08/17/2003 - G.R-P                                 * */
  55/* *             - added conditionals around non-VLC chunk support          * */
  56/* *                                                                        * */
  57/* *             1.0.7 - 03/24/2004 - G.R-P                                 * */
  58/* *             - fixed SKIPCHUNK_eXPI -> fPRI typo                        * */
  59/* *                                                                        * */
  60/* *             1.0.9 - 09/25/2004 - G.Juyn                                * */
  61/* *             - replaced MNG_TWEAK_LARGE_FILES with permanent solution   * */
  62/* *             1.0.9 - 12/05/2004 - G.Juyn                                * */
  63/* *             - added conditional MNG_OPTIMIZE_CHUNKINITFREE             * */
  64/* *             1.0.9 - 12/06/2004 - G.Juyn                                * */
  65/* *             - added conditional MNG_OPTIMIZE_CHUNKASSIGN               * */
  66/* *             1.0.9 - 12/20/2004 - G.Juyn                                * */
  67/* *             - cleaned up macro-invocations (thanks to D. Airlie)       * */
  68/* *                                                                        * */
  69/* *             1.0.10 - 07/30/2005 - G.Juyn                               * */
  70/* *             - fixed problem with CLON object during readdisplay()      * */
  71/* *             1.0.10 - 04/08/2007 - G.Juyn                               * */
  72/* *             - added support for mPNG proposal                          * */
  73/* *             1.0.10 - 04/12/2007 - G.Juyn                               * */
  74/* *             - added support for ANG proposal                           * */
  75/* *                                                                        * */
  76/* ************************************************************************** */
  77
  78#include "libmng.h"
  79#include "libmng_data.h"
  80#include "libmng_error.h"
  81#include "libmng_trace.h"
  82#ifdef __BORLANDC__
  83#pragma hdrstop
  84#endif
  85#include "libmng_memory.h"
  86#include "libmng_chunks.h"
  87#include "libmng_chunk_prc.h"
  88
  89#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
  90#pragma option -A                      /* force ANSI-C */
  91#endif
  92
  93/* ************************************************************************** */
  94/* *                                                                        * */
  95/* * General chunk routines                                                 * */
  96/* *                                                                        * */
  97/* ************************************************************************** */
  98
  99void mng_add_chunk (mng_datap  pData,
 100                    mng_chunkp pChunk)
 101{
 102  if (!pData->pFirstchunk)             /* list is still empty ? */
 103  {
 104    pData->pFirstchunk      = pChunk;  /* then this becomes the first */
 105    
 106#ifdef MNG_SUPPORT_WRITE
 107    if (!pData->iFirstchunkadded)
 108    {
 109      pData->iFirstchunkadded = ((mng_chunk_headerp)pChunk)->iChunkname;
 110#endif
 111
 112      if (((mng_chunk_headerp)pChunk)->iChunkname == MNG_UINT_IHDR)
 113        pData->eImagetype     = mng_it_png;
 114      else
 115#ifdef MNG_INCLUDE_JNG
 116      if (((mng_chunk_headerp)pChunk)->iChunkname == MNG_UINT_JHDR)
 117        pData->eImagetype     = mng_it_jng;
 118      else
 119#endif
 120        pData->eImagetype     = mng_it_mng;
 121
 122      pData->eSigtype         = pData->eImagetype;
 123#ifdef MNG_SUPPORT_WRITE
 124    }
 125#endif
 126  }
 127  else
 128  {                                    /* else we make appropriate links */
 129    ((mng_chunk_headerp)pChunk)->pPrev = pData->pLastchunk;
 130    ((mng_chunk_headerp)pData->pLastchunk)->pNext = pChunk;
 131  }
 132
 133  pData->pLastchunk = pChunk;          /* and it's always the last */
 134
 135  return;
 136}
 137
 138/* ************************************************************************** */
 139/* *                                                                        * */
 140/* * Chunk specific initialization routines                                 * */
 141/* *                                                                        * */
 142/* ************************************************************************** */
 143
 144#ifdef MNG_OPTIMIZE_CHUNKINITFREE
 145INIT_CHUNK_HDR (mng_init_general)
 146{
 147  MNG_ALLOC (pData, *ppChunk, ((mng_chunk_headerp)pHeader)->iChunksize);
 148  MNG_COPY (*ppChunk, pHeader, sizeof (mng_chunk_header));
 149  return MNG_NOERROR;
 150}
 151
 152#else /* MNG_OPTIMIZE_CHUNKINITFREE */
 153
 154/* ************************************************************************** */
 155
 156INIT_CHUNK_HDR (mng_init_ihdr)
 157{
 158#ifdef MNG_SUPPORT_TRACE
 159  MNG_TRACE (pData, MNG_FN_INIT_IHDR, MNG_LC_START);
 160#endif
 161
 162  MNG_ALLOC (pData, *ppChunk, sizeof (mng_ihdr));
 163  ((mng_ihdrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 164
 165#ifdef MNG_SUPPORT_TRACE
 166  MNG_TRACE (pData, MNG_FN_INIT_IHDR, MNG_LC_END);
 167#endif
 168
 169  return MNG_NOERROR;
 170}
 171
 172/* ************************************************************************** */
 173
 174INIT_CHUNK_HDR (mng_init_plte)
 175{
 176#ifdef MNG_SUPPORT_TRACE
 177  MNG_TRACE (pData, MNG_FN_INIT_PLTE, MNG_LC_START);
 178#endif
 179
 180  MNG_ALLOC (pData, *ppChunk, sizeof (mng_plte));
 181  ((mng_pltep)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 182
 183#ifdef MNG_SUPPORT_TRACE
 184  MNG_TRACE (pData, MNG_FN_INIT_PLTE, MNG_LC_END);
 185#endif
 186
 187  return MNG_NOERROR;
 188}
 189
 190/* ************************************************************************** */
 191
 192INIT_CHUNK_HDR (mng_init_idat)
 193{
 194#ifdef MNG_SUPPORT_TRACE
 195  MNG_TRACE (pData, MNG_FN_INIT_IDAT, MNG_LC_START);
 196#endif
 197
 198  MNG_ALLOC (pData, *ppChunk, sizeof (mng_idat));
 199  ((mng_idatp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 200
 201#ifdef MNG_SUPPORT_TRACE
 202  MNG_TRACE (pData, MNG_FN_INIT_IDAT, MNG_LC_END);
 203#endif
 204
 205  return MNG_NOERROR;
 206}
 207
 208/* ************************************************************************** */
 209
 210INIT_CHUNK_HDR (mng_init_iend)
 211{
 212#ifdef MNG_SUPPORT_TRACE
 213  MNG_TRACE (pData, MNG_FN_INIT_IEND, MNG_LC_START);
 214#endif
 215
 216  MNG_ALLOC (pData, *ppChunk, sizeof (mng_iend));
 217  ((mng_iendp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 218
 219#ifdef MNG_SUPPORT_TRACE
 220  MNG_TRACE (pData, MNG_FN_INIT_IEND, MNG_LC_END);
 221#endif
 222
 223  return MNG_NOERROR;
 224}
 225
 226/* ************************************************************************** */
 227
 228INIT_CHUNK_HDR (mng_init_trns)
 229{
 230#ifdef MNG_SUPPORT_TRACE
 231  MNG_TRACE (pData, MNG_FN_INIT_TRNS, MNG_LC_START);
 232#endif
 233
 234  MNG_ALLOC (pData, *ppChunk, sizeof (mng_trns));
 235  ((mng_trnsp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 236
 237#ifdef MNG_SUPPORT_TRACE
 238  MNG_TRACE (pData, MNG_FN_INIT_TRNS, MNG_LC_END);
 239#endif
 240
 241  return MNG_NOERROR;
 242}
 243
 244/* ************************************************************************** */
 245
 246#ifndef MNG_SKIPCHUNK_gAMA
 247INIT_CHUNK_HDR (mng_init_gama)
 248{
 249#ifdef MNG_SUPPORT_TRACE
 250  MNG_TRACE (pData, MNG_FN_INIT_GAMA, MNG_LC_START);
 251#endif
 252
 253  MNG_ALLOC (pData, *ppChunk, sizeof (mng_gama));
 254  ((mng_gamap)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 255
 256#ifdef MNG_SUPPORT_TRACE
 257  MNG_TRACE (pData, MNG_FN_INIT_GAMA, MNG_LC_END);
 258#endif
 259
 260  return MNG_NOERROR;
 261}
 262#endif
 263
 264/* ************************************************************************** */
 265
 266#ifndef MNG_SKIPCHUNK_cHRM
 267INIT_CHUNK_HDR (mng_init_chrm)
 268{
 269#ifdef MNG_SUPPORT_TRACE
 270  MNG_TRACE (pData, MNG_FN_INIT_CHRM, MNG_LC_START);
 271#endif
 272
 273  MNG_ALLOC (pData, *ppChunk, sizeof (mng_chrm));
 274  ((mng_chrmp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 275
 276#ifdef MNG_SUPPORT_TRACE
 277  MNG_TRACE (pData, MNG_FN_INIT_CHRM, MNG_LC_END);
 278#endif
 279
 280  return MNG_NOERROR;
 281}
 282#endif
 283
 284/* ************************************************************************** */
 285
 286#ifndef MNG_SKIPCHUNK_sRGB
 287INIT_CHUNK_HDR (mng_init_srgb)
 288{
 289#ifdef MNG_SUPPORT_TRACE
 290  MNG_TRACE (pData, MNG_FN_INIT_SRGB, MNG_LC_START);
 291#endif
 292
 293  MNG_ALLOC (pData, *ppChunk, sizeof (mng_srgb));
 294  ((mng_srgbp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 295
 296#ifdef MNG_SUPPORT_TRACE
 297  MNG_TRACE (pData, MNG_FN_INIT_SRGB, MNG_LC_END);
 298#endif
 299
 300  return MNG_NOERROR;
 301}
 302#endif
 303
 304/* ************************************************************************** */
 305
 306#ifndef MNG_SKIPCHUNK_iCCP
 307INIT_CHUNK_HDR (mng_init_iccp)
 308{
 309#ifdef MNG_SUPPORT_TRACE
 310  MNG_TRACE (pData, MNG_FN_INIT_ICCP, MNG_LC_START);
 311#endif
 312
 313  MNG_ALLOC (pData, *ppChunk, sizeof (mng_iccp));
 314  ((mng_iccpp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 315
 316#ifdef MNG_SUPPORT_TRACE
 317  MNG_TRACE (pData, MNG_FN_INIT_ICCP, MNG_LC_END);
 318#endif
 319
 320  return MNG_NOERROR;
 321}
 322#endif
 323
 324/* ************************************************************************** */
 325
 326#ifndef MNG_SKIPCHUNK_tEXt
 327INIT_CHUNK_HDR (mng_init_text)
 328{
 329#ifdef MNG_SUPPORT_TRACE
 330  MNG_TRACE (pData, MNG_FN_INIT_TEXT, MNG_LC_START);
 331#endif
 332
 333  MNG_ALLOC (pData, *ppChunk, sizeof (mng_text));
 334  ((mng_textp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 335
 336#ifdef MNG_SUPPORT_TRACE
 337  MNG_TRACE (pData, MNG_FN_INIT_TEXT, MNG_LC_END);
 338#endif
 339
 340  return MNG_NOERROR;
 341}
 342#endif
 343
 344/* ************************************************************************** */
 345
 346#ifndef MNG_SKIPCHUNK_zTXt
 347INIT_CHUNK_HDR (mng_init_ztxt)
 348{
 349#ifdef MNG_SUPPORT_TRACE
 350  MNG_TRACE (pData, MNG_FN_INIT_ZTXT, MNG_LC_START);
 351#endif
 352
 353  MNG_ALLOC (pData, *ppChunk, sizeof (mng_ztxt));
 354  ((mng_ztxtp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 355
 356#ifdef MNG_SUPPORT_TRACE
 357  MNG_TRACE (pData, MNG_FN_INIT_ZTXT, MNG_LC_END);
 358#endif
 359
 360  return MNG_NOERROR;
 361}
 362#endif
 363
 364/* ************************************************************************** */
 365
 366#ifndef MNG_SKIPCHUNK_iTXt
 367INIT_CHUNK_HDR (mng_init_itxt)
 368{
 369#ifdef MNG_SUPPORT_TRACE
 370  MNG_TRACE (pData, MNG_FN_INIT_ITXT, MNG_LC_START);
 371#endif
 372
 373  MNG_ALLOC (pData, *ppChunk, sizeof (mng_itxt));
 374  ((mng_itxtp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 375
 376#ifdef MNG_SUPPORT_TRACE
 377  MNG_TRACE (pData, MNG_FN_INIT_ITXT, MNG_LC_END);
 378#endif
 379
 380  return MNG_NOERROR;
 381}
 382#endif
 383
 384/* ************************************************************************** */
 385
 386#ifndef MNG_SKIPCHUNK_bKGD
 387INIT_CHUNK_HDR (mng_init_bkgd)
 388{
 389#ifdef MNG_SUPPORT_TRACE
 390  MNG_TRACE (pData, MNG_FN_INIT_BKGD, MNG_LC_START);
 391#endif
 392
 393  MNG_ALLOC (pData, *ppChunk, sizeof (mng_bkgd));
 394  ((mng_bkgdp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 395
 396#ifdef MNG_SUPPORT_TRACE
 397  MNG_TRACE (pData, MNG_FN_INIT_BKGD, MNG_LC_END);
 398#endif
 399
 400  return MNG_NOERROR;
 401}
 402#endif
 403
 404/* ************************************************************************** */
 405
 406#ifndef MNG_SKIPCHUNK_pHYs
 407INIT_CHUNK_HDR (mng_init_phys)
 408{
 409#ifdef MNG_SUPPORT_TRACE
 410  MNG_TRACE (pData, MNG_FN_INIT_PHYS, MNG_LC_START);
 411#endif
 412
 413  MNG_ALLOC (pData, *ppChunk, sizeof (mng_phys));
 414  ((mng_physp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 415
 416#ifdef MNG_SUPPORT_TRACE
 417  MNG_TRACE (pData, MNG_FN_INIT_PHYS, MNG_LC_END);
 418#endif
 419
 420  return MNG_NOERROR;
 421}
 422#endif
 423
 424/* ************************************************************************** */
 425
 426#ifndef MNG_SKIPCHUNK_sBIT
 427INIT_CHUNK_HDR (mng_init_sbit)
 428{
 429#ifdef MNG_SUPPORT_TRACE
 430  MNG_TRACE (pData, MNG_FN_INIT_SBIT, MNG_LC_START);
 431#endif
 432
 433  MNG_ALLOC (pData, *ppChunk, sizeof (mng_sbit));
 434  ((mng_sbitp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 435
 436#ifdef MNG_SUPPORT_TRACE
 437  MNG_TRACE (pData, MNG_FN_INIT_SBIT, MNG_LC_END);
 438#endif
 439
 440  return MNG_NOERROR;
 441}
 442#endif
 443
 444/* ************************************************************************** */
 445
 446#ifndef MNG_SKIPCHUNK_sPLT
 447INIT_CHUNK_HDR (mng_init_splt)
 448{
 449#ifdef MNG_SUPPORT_TRACE
 450  MNG_TRACE (pData, MNG_FN_INIT_SPLT, MNG_LC_START);
 451#endif
 452
 453  MNG_ALLOC (pData, *ppChunk, sizeof (mng_splt));
 454  ((mng_spltp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 455
 456#ifdef MNG_SUPPORT_TRACE
 457  MNG_TRACE (pData, MNG_FN_INIT_SPLT, MNG_LC_END);
 458#endif
 459
 460  return MNG_NOERROR;
 461}
 462#endif
 463
 464/* ************************************************************************** */
 465
 466#ifndef MNG_SKIPCHUNK_hIST
 467INIT_CHUNK_HDR (mng_init_hist)
 468{
 469#ifdef MNG_SUPPORT_TRACE
 470  MNG_TRACE (pData, MNG_FN_INIT_HIST, MNG_LC_START);
 471#endif
 472
 473  MNG_ALLOC (pData, *ppChunk, sizeof (mng_hist));
 474  ((mng_histp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 475
 476#ifdef MNG_SUPPORT_TRACE
 477  MNG_TRACE (pData, MNG_FN_INIT_HIST, MNG_LC_END);
 478#endif
 479
 480  return MNG_NOERROR;
 481}
 482#endif
 483
 484/* ************************************************************************** */
 485
 486#ifndef MNG_SKIPCHUNK_tIME
 487INIT_CHUNK_HDR (mng_init_time)
 488{
 489#ifdef MNG_SUPPORT_TRACE
 490  MNG_TRACE (pData, MNG_FN_INIT_TIME, MNG_LC_START);
 491#endif
 492
 493  MNG_ALLOC (pData, *ppChunk, sizeof (mng_time));
 494  ((mng_timep)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 495
 496#ifdef MNG_SUPPORT_TRACE
 497  MNG_TRACE (pData, MNG_FN_INIT_TIME, MNG_LC_END);
 498#endif
 499
 500  return MNG_NOERROR;
 501}
 502#endif
 503
 504/* ************************************************************************** */
 505
 506INIT_CHUNK_HDR (mng_init_mhdr)
 507{
 508#ifdef MNG_SUPPORT_TRACE
 509  MNG_TRACE (pData, MNG_FN_INIT_MHDR, MNG_LC_START);
 510#endif
 511
 512  MNG_ALLOC (pData, *ppChunk, sizeof (mng_mhdr));
 513  ((mng_mhdrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 514
 515#ifdef MNG_SUPPORT_TRACE
 516  MNG_TRACE (pData, MNG_FN_INIT_MHDR, MNG_LC_END);
 517#endif
 518
 519  return MNG_NOERROR;
 520}
 521
 522/* ************************************************************************** */
 523
 524INIT_CHUNK_HDR (mng_init_mend)
 525{
 526#ifdef MNG_SUPPORT_TRACE
 527  MNG_TRACE (pData, MNG_FN_INIT_MEND, MNG_LC_START);
 528#endif
 529
 530  MNG_ALLOC (pData, *ppChunk, sizeof (mng_mend));
 531  ((mng_mendp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 532
 533#ifdef MNG_SUPPORT_TRACE
 534  MNG_TRACE (pData, MNG_FN_INIT_MEND, MNG_LC_END);
 535#endif
 536
 537  return MNG_NOERROR;
 538}
 539
 540/* ************************************************************************** */
 541
 542#ifndef MNG_SKIPCHUNK_LOOP
 543INIT_CHUNK_HDR (mng_init_loop)
 544{
 545#ifdef MNG_SUPPORT_TRACE
 546  MNG_TRACE (pData, MNG_FN_INIT_LOOP, MNG_LC_START);
 547#endif
 548
 549  MNG_ALLOC (pData, *ppChunk, sizeof (mng_loop));
 550  ((mng_loopp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 551
 552#ifdef MNG_SUPPORT_TRACE
 553  MNG_TRACE (pData, MNG_FN_INIT_LOOP, MNG_LC_END);
 554#endif
 555
 556  return MNG_NOERROR;
 557}
 558
 559/* ************************************************************************** */
 560
 561INIT_CHUNK_HDR (mng_init_endl)
 562{
 563#ifdef MNG_SUPPORT_TRACE
 564  MNG_TRACE (pData, MNG_FN_INIT_ENDL, MNG_LC_START);
 565#endif
 566
 567  MNG_ALLOC (pData, *ppChunk, sizeof (mng_endl));
 568  ((mng_endlp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 569
 570#ifdef MNG_SUPPORT_TRACE
 571  MNG_TRACE (pData, MNG_FN_INIT_ENDL, MNG_LC_END);
 572#endif
 573
 574  return MNG_NOERROR;
 575}
 576#endif
 577
 578/* ************************************************************************** */
 579
 580#ifndef MNG_SKIPCHUNK_DEFI
 581INIT_CHUNK_HDR (mng_init_defi)
 582{
 583#ifdef MNG_SUPPORT_TRACE
 584  MNG_TRACE (pData, MNG_FN_INIT_DEFI, MNG_LC_START);
 585#endif
 586
 587  MNG_ALLOC (pData, *ppChunk, sizeof (mng_defi));
 588  ((mng_defip)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 589
 590#ifdef MNG_SUPPORT_TRACE
 591  MNG_TRACE (pData, MNG_FN_INIT_DEFI, MNG_LC_END);
 592#endif
 593
 594  return MNG_NOERROR;
 595}
 596#endif
 597
 598/* ************************************************************************** */
 599
 600#ifndef MNG_SKIPCHUNK_BASI
 601INIT_CHUNK_HDR (mng_init_basi)
 602{
 603#ifdef MNG_SUPPORT_TRACE
 604  MNG_TRACE (pData, MNG_FN_INIT_BASI, MNG_LC_START);
 605#endif
 606
 607  MNG_ALLOC (pData, *ppChunk, sizeof (mng_basi));
 608  ((mng_basip)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 609
 610#ifdef MNG_SUPPORT_TRACE
 611  MNG_TRACE (pData, MNG_FN_INIT_BASI, MNG_LC_END);
 612#endif
 613
 614  return MNG_NOERROR;
 615}
 616#endif
 617
 618/* ************************************************************************** */
 619
 620#ifndef MNG_SKIPCHUNK_CLON
 621INIT_CHUNK_HDR (mng_init_clon)
 622{
 623#ifdef MNG_SUPPORT_TRACE
 624  MNG_TRACE (pData, MNG_FN_INIT_CLON, MNG_LC_START);
 625#endif
 626
 627  MNG_ALLOC (pData, *ppChunk, sizeof (mng_clon));
 628  ((mng_clonp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 629
 630#ifdef MNG_SUPPORT_TRACE
 631  MNG_TRACE (pData, MNG_FN_INIT_CLON, MNG_LC_END);
 632#endif
 633
 634  return MNG_NOERROR;
 635}
 636#endif
 637
 638/* ************************************************************************** */
 639
 640#ifndef MNG_SKIPCHUNK_PAST
 641INIT_CHUNK_HDR (mng_init_past)
 642{
 643#ifdef MNG_SUPPORT_TRACE
 644  MNG_TRACE (pData, MNG_FN_INIT_PAST, MNG_LC_START);
 645#endif
 646
 647  MNG_ALLOC (pData, *ppChunk, sizeof (mng_past));
 648  ((mng_pastp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 649
 650#ifdef MNG_SUPPORT_TRACE
 651  MNG_TRACE (pData, MNG_FN_INIT_PAST, MNG_LC_END);
 652#endif
 653
 654  return MNG_NOERROR;
 655}
 656#endif
 657
 658/* ************************************************************************** */
 659
 660#ifndef MNG_SKIPCHUNK_DISC
 661INIT_CHUNK_HDR (mng_init_disc)
 662{
 663#ifdef MNG_SUPPORT_TRACE
 664  MNG_TRACE (pData, MNG_FN_INIT_DISC, MNG_LC_START);
 665#endif
 666
 667  MNG_ALLOC (pData, *ppChunk, sizeof (mng_disc));
 668  ((mng_discp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 669
 670#ifdef MNG_SUPPORT_TRACE
 671  MNG_TRACE (pData, MNG_FN_INIT_DISC, MNG_LC_END);
 672#endif
 673
 674  return MNG_NOERROR;
 675}
 676#endif
 677
 678/* ************************************************************************** */
 679
 680#ifndef MNG_SKIPCHUNK_BACK
 681INIT_CHUNK_HDR (mng_init_back)
 682{
 683#ifdef MNG_SUPPORT_TRACE
 684  MNG_TRACE (pData, MNG_FN_INIT_BACK, MNG_LC_START);
 685#endif
 686
 687  MNG_ALLOC (pData, *ppChunk, sizeof (mng_back));
 688  ((mng_backp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 689
 690#ifdef MNG_SUPPORT_TRACE
 691  MNG_TRACE (pData, MNG_FN_INIT_BACK, MNG_LC_END);
 692#endif
 693
 694  return MNG_NOERROR;
 695}
 696#endif
 697
 698/* ************************************************************************** */
 699
 700#ifndef MNG_SKIPCHUNK_FRAM
 701INIT_CHUNK_HDR (mng_init_fram)
 702{
 703#ifdef MNG_SUPPORT_TRACE
 704  MNG_TRACE (pData, MNG_FN_INIT_FRAM, MNG_LC_START);
 705#endif
 706
 707  MNG_ALLOC (pData, *ppChunk, sizeof (mng_fram));
 708  ((mng_framp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 709
 710#ifdef MNG_SUPPORT_TRACE
 711  MNG_TRACE (pData, MNG_FN_INIT_FRAM, MNG_LC_END);
 712#endif
 713
 714  return MNG_NOERROR;
 715}
 716#endif
 717
 718/* ************************************************************************** */
 719
 720#ifndef MNG_SKIPCHUNK_MOVE
 721INIT_CHUNK_HDR (mng_init_move)
 722{
 723#ifdef MNG_SUPPORT_TRACE
 724  MNG_TRACE (pData, MNG_FN_INIT_MOVE, MNG_LC_START);
 725#endif
 726
 727  MNG_ALLOC (pData, *ppChunk, sizeof (mng_move));
 728  ((mng_movep)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 729
 730#ifdef MNG_SUPPORT_TRACE
 731  MNG_TRACE (pData, MNG_FN_INIT_MOVE, MNG_LC_END);
 732#endif
 733
 734  return MNG_NOERROR;
 735}
 736#endif
 737
 738/* ************************************************************************** */
 739
 740#ifndef MNG_SKIPCHUNK_CLIP
 741INIT_CHUNK_HDR (mng_init_clip)
 742{
 743#ifdef MNG_SUPPORT_TRACE
 744  MNG_TRACE (pData, MNG_FN_INIT_CLIP, MNG_LC_START);
 745#endif
 746
 747  MNG_ALLOC (pData, *ppChunk, sizeof (mng_clip));
 748  ((mng_clipp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 749
 750#ifdef MNG_SUPPORT_TRACE
 751  MNG_TRACE (pData, MNG_FN_INIT_CLIP, MNG_LC_END);
 752#endif
 753
 754  return MNG_NOERROR;
 755}
 756#endif
 757
 758/* ************************************************************************** */
 759
 760#ifndef MNG_SKIPCHUNK_SHOW
 761INIT_CHUNK_HDR (mng_init_show)
 762{
 763#ifdef MNG_SUPPORT_TRACE
 764  MNG_TRACE (pData, MNG_FN_INIT_SHOW, MNG_LC_START);
 765#endif
 766
 767  MNG_ALLOC (pData, *ppChunk, sizeof (mng_show));
 768  ((mng_showp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 769
 770#ifdef MNG_SUPPORT_TRACE
 771  MNG_TRACE (pData, MNG_FN_INIT_SHOW, MNG_LC_END);
 772#endif
 773
 774  return MNG_NOERROR;
 775}
 776#endif
 777
 778/* ************************************************************************** */
 779
 780#ifndef MNG_SKIPCHUNK_TERM
 781INIT_CHUNK_HDR (mng_init_term)
 782{
 783#ifdef MNG_SUPPORT_TRACE
 784  MNG_TRACE (pData, MNG_FN_INIT_TERM, MNG_LC_START);
 785#endif
 786
 787  MNG_ALLOC (pData, *ppChunk, sizeof (mng_term));
 788  ((mng_termp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 789
 790#ifdef MNG_SUPPORT_TRACE
 791  MNG_TRACE (pData, MNG_FN_INIT_TERM, MNG_LC_END);
 792#endif
 793
 794  return MNG_NOERROR;
 795}
 796#endif
 797
 798/* ************************************************************************** */
 799
 800#ifndef MNG_SKIPCHUNK_SAVE
 801INIT_CHUNK_HDR (mng_init_save)
 802{
 803#ifdef MNG_SUPPORT_TRACE
 804  MNG_TRACE (pData, MNG_FN_INIT_SAVE, MNG_LC_START);
 805#endif
 806
 807  MNG_ALLOC (pData, *ppChunk, sizeof (mng_save));
 808  ((mng_savep)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 809
 810#ifdef MNG_SUPPORT_TRACE
 811  MNG_TRACE (pData, MNG_FN_INIT_SAVE, MNG_LC_END);
 812#endif
 813
 814  return MNG_NOERROR;
 815
 816}
 817#endif
 818
 819/* ************************************************************************** */
 820
 821#ifndef MNG_SKIPCHUNK_SEEK
 822INIT_CHUNK_HDR (mng_init_seek)
 823{
 824#ifdef MNG_SUPPORT_TRACE
 825  MNG_TRACE (pData, MNG_FN_INIT_SEEK, MNG_LC_START);
 826#endif
 827
 828  MNG_ALLOC (pData, *ppChunk, sizeof (mng_seek));
 829  ((mng_seekp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 830
 831#ifdef MNG_SUPPORT_TRACE
 832  MNG_TRACE (pData, MNG_FN_INIT_SEEK, MNG_LC_END);
 833#endif
 834
 835  return MNG_NOERROR;
 836}
 837#endif
 838
 839/* ************************************************************************** */
 840
 841#ifndef MNG_SKIPCHUNK_eXPI
 842INIT_CHUNK_HDR (mng_init_expi)
 843{
 844#ifdef MNG_SUPPORT_TRACE
 845  MNG_TRACE (pData, MNG_FN_INIT_EXPI, MNG_LC_START);
 846#endif
 847
 848  MNG_ALLOC (pData, *ppChunk, sizeof (mng_expi));
 849  ((mng_expip)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 850
 851#ifdef MNG_SUPPORT_TRACE
 852  MNG_TRACE (pData, MNG_FN_INIT_EXPI, MNG_LC_END);
 853#endif
 854
 855  return MNG_NOERROR;
 856}
 857#endif
 858
 859/* ************************************************************************** */
 860
 861#ifndef MNG_SKIPCHUNK_fPRI
 862INIT_CHUNK_HDR (mng_init_fpri)
 863{
 864#ifdef MNG_SUPPORT_TRACE
 865  MNG_TRACE (pData, MNG_FN_INIT_FPRI, MNG_LC_START);
 866#endif
 867
 868  MNG_ALLOC (pData, *ppChunk, sizeof (mng_fpri));
 869  ((mng_fprip)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 870
 871#ifdef MNG_SUPPORT_TRACE
 872  MNG_TRACE (pData, MNG_FN_INIT_FPRI, MNG_LC_END);
 873#endif
 874
 875  return MNG_NOERROR;
 876}
 877#endif
 878
 879/* ************************************************************************** */
 880
 881#ifndef MNG_SKIPCHUNK_nEED
 882INIT_CHUNK_HDR (mng_init_need)
 883{
 884#ifdef MNG_SUPPORT_TRACE
 885  MNG_TRACE (pData, MNG_FN_INIT_NEED, MNG_LC_START);
 886#endif
 887
 888  MNG_ALLOC (pData, *ppChunk, sizeof (mng_need));
 889  ((mng_needp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 890
 891#ifdef MNG_SUPPORT_TRACE
 892  MNG_TRACE (pData, MNG_FN_INIT_NEED, MNG_LC_END);
 893#endif
 894
 895  return MNG_NOERROR;
 896}
 897#endif
 898
 899/* ************************************************************************** */
 900
 901#ifndef MNG_SKIPCHUNK_pHYg
 902INIT_CHUNK_HDR (mng_init_phyg)
 903{
 904#ifdef MNG_SUPPORT_TRACE
 905  MNG_TRACE (pData, MNG_FN_INIT_PHYG, MNG_LC_START);
 906#endif
 907
 908  MNG_ALLOC (pData, *ppChunk, sizeof (mng_phyg));
 909  ((mng_phygp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 910
 911#ifdef MNG_SUPPORT_TRACE
 912  MNG_TRACE (pData, MNG_FN_INIT_PHYG, MNG_LC_END);
 913#endif
 914
 915  return MNG_NOERROR;
 916}
 917#endif
 918
 919/* ************************************************************************** */
 920
 921#ifdef MNG_INCLUDE_JNG
 922INIT_CHUNK_HDR (mng_init_jhdr)
 923{
 924#ifdef MNG_SUPPORT_TRACE
 925  MNG_TRACE (pData, MNG_FN_INIT_JHDR, MNG_LC_START);
 926#endif
 927
 928  MNG_ALLOC (pData, *ppChunk, sizeof (mng_jhdr));
 929  ((mng_jhdrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 930
 931#ifdef MNG_SUPPORT_TRACE
 932  MNG_TRACE (pData, MNG_FN_INIT_JHDR, MNG_LC_END);
 933#endif
 934
 935  return MNG_NOERROR;
 936}
 937#endif /* MNG_INCLUDE_JNG */
 938
 939/* ************************************************************************** */
 940
 941#ifdef MNG_INCLUDE_JNG
 942INIT_CHUNK_HDR (mng_init_jdaa)
 943{
 944#ifdef MNG_SUPPORT_TRACE
 945  MNG_TRACE (pData, MNG_FN_INIT_JDAA, MNG_LC_START);
 946#endif
 947
 948  MNG_ALLOC (pData, *ppChunk, sizeof (mng_jdaa));
 949  ((mng_jdaap)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 950
 951#ifdef MNG_SUPPORT_TRACE
 952  MNG_TRACE (pData, MNG_FN_INIT_JDAA, MNG_LC_END);
 953#endif
 954
 955  return MNG_NOERROR;
 956}
 957#endif /* MNG_INCLUDE_JNG */
 958
 959/* ************************************************************************** */
 960
 961#ifdef MNG_INCLUDE_JNG
 962INIT_CHUNK_HDR (mng_init_jdat)
 963{
 964#ifdef MNG_SUPPORT_TRACE
 965  MNG_TRACE (pData, MNG_FN_INIT_JDAT, MNG_LC_START);
 966#endif
 967
 968  MNG_ALLOC (pData, *ppChunk, sizeof (mng_jdat));
 969  ((mng_jdatp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 970
 971#ifdef MNG_SUPPORT_TRACE
 972  MNG_TRACE (pData, MNG_FN_INIT_JDAT, MNG_LC_END);
 973#endif
 974
 975  return MNG_NOERROR;
 976}
 977#endif /* MNG_INCLUDE_JNG */
 978
 979/* ************************************************************************** */
 980
 981#ifdef MNG_INCLUDE_JNG
 982INIT_CHUNK_HDR (mng_init_jsep)
 983{
 984#ifdef MNG_SUPPORT_TRACE
 985  MNG_TRACE (pData, MNG_FN_INIT_JSEP, MNG_LC_START);
 986#endif
 987
 988  MNG_ALLOC (pData, *ppChunk, sizeof (mng_jsep));
 989  ((mng_jsepp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
 990
 991#ifdef MNG_SUPPORT_TRACE
 992  MNG_TRACE (pData, MNG_FN_INIT_JSEP, MNG_LC_END);
 993#endif
 994
 995  return MNG_NOERROR;
 996}
 997#endif /* MNG_INCLUDE_JNG */
 998
 999/* ************************************************************************** */
1000
1001#ifndef MNG_NO_DELTA_PNG
1002INIT_CHUNK_HDR (mng_init_dhdr)
1003{
1004#ifdef MNG_SUPPORT_TRACE
1005  MNG_TRACE (pData, MNG_FN_INIT_DHDR, MNG_LC_START);
1006#endif
1007
1008  MNG_ALLOC (pData, *ppChunk, sizeof (mng_dhdr));
1009  ((mng_dhdrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1010
1011#ifdef MNG_SUPPORT_TRACE
1012  MNG_TRACE (pData, MNG_FN_INIT_DHDR, MNG_LC_END);
1013#endif
1014
1015  return MNG_NOERROR;
1016}
1017#endif
1018
1019/* ************************************************************************** */
1020
1021#ifndef MNG_NO_DELTA_PNG
1022INIT_CHUNK_HDR (mng_init_prom)
1023{
1024#ifdef MNG_SUPPORT_TRACE
1025  MNG_TRACE (pData, MNG_FN_INIT_PROM, MNG_LC_START);
1026#endif
1027
1028  MNG_ALLOC (pData, *ppChunk, sizeof (mng_prom));
1029  ((mng_promp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1030
1031#ifdef MNG_SUPPORT_TRACE
1032  MNG_TRACE (pData, MNG_FN_INIT_PROM, MNG_LC_END);
1033#endif
1034
1035  return MNG_NOERROR;
1036}
1037#endif
1038
1039/* ************************************************************************** */
1040
1041#ifndef MNG_NO_DELTA_PNG
1042INIT_CHUNK_HDR (mng_init_ipng)
1043{
1044#ifdef MNG_SUPPORT_TRACE
1045  MNG_TRACE (pData, MNG_FN_INIT_IPNG, MNG_LC_START);
1046#endif
1047
1048  MNG_ALLOC (pData, *ppChunk, sizeof (mng_ipng));
1049  ((mng_ipngp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1050
1051#ifdef MNG_SUPPORT_TRACE
1052  MNG_TRACE (pData, MNG_FN_INIT_IPNG, MNG_LC_END);
1053#endif
1054
1055  return MNG_NOERROR;
1056}
1057#endif
1058
1059/* ************************************************************************** */
1060
1061#ifndef MNG_NO_DELTA_PNG
1062INIT_CHUNK_HDR (mng_init_pplt)
1063{
1064#ifdef MNG_SUPPORT_TRACE
1065  MNG_TRACE (pData, MNG_FN_INIT_PPLT, MNG_LC_START);
1066#endif
1067
1068  MNG_ALLOC (pData, *ppChunk, sizeof (mng_pplt));
1069  ((mng_ppltp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1070
1071#ifdef MNG_SUPPORT_TRACE
1072  MNG_TRACE (pData, MNG_FN_INIT_PPLT, MNG_LC_END);
1073#endif
1074
1075  return MNG_NOERROR;
1076}
1077#endif
1078
1079/* ************************************************************************** */
1080
1081#ifndef MNG_NO_DELTA_PNG
1082#ifdef MNG_INCLUDE_JNG
1083INIT_CHUNK_HDR (mng_init_ijng)
1084{
1085#ifdef MNG_SUPPORT_TRACE
1086  MNG_TRACE (pData, MNG_FN_INIT_IJNG, MNG_LC_START);
1087#endif
1088
1089  MNG_ALLOC (pData, *ppChunk, sizeof (mng_ijng));
1090  ((mng_ijngp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1091
1092#ifdef MNG_SUPPORT_TRACE
1093  MNG_TRACE (pData, MNG_FN_INIT_IJNG, MNG_LC_END);
1094#endif
1095
1096  return MNG_NOERROR;
1097}
1098#endif
1099#endif
1100
1101/* ************************************************************************** */
1102
1103#ifndef MNG_NO_DELTA_PNG
1104INIT_CHUNK_HDR (mng_init_drop)
1105{
1106#ifdef MNG_SUPPORT_TRACE
1107  MNG_TRACE (pData, MNG_FN_INIT_DROP, MNG_LC_START);
1108#endif
1109
1110  MNG_ALLOC (pData, *ppChunk, sizeof (mng_drop));
1111  ((mng_dropp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1112
1113#ifdef MNG_SUPPORT_TRACE
1114  MNG_TRACE (pData, MNG_FN_INIT_DROP, MNG_LC_END);
1115#endif
1116
1117  return MNG_NOERROR;
1118}
1119#endif
1120
1121
1122/* ************************************************************************** */
1123
1124#ifndef MNG_NO_DELTA_PNG
1125#ifndef MNG_SKIPCHUNK_DBYK
1126INIT_CHUNK_HDR (mng_init_dbyk)
1127{
1128#ifdef MNG_SUPPORT_TRACE
1129  MNG_TRACE (pData, MNG_FN_INIT_DBYK, MNG_LC_START);
1130#endif
1131
1132  MNG_ALLOC (pData, *ppChunk, sizeof (mng_dbyk));
1133  ((mng_dbykp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1134
1135#ifdef MNG_SUPPORT_TRACE
1136  MNG_TRACE (pData, MNG_FN_INIT_DBYK, MNG_LC_END);
1137#endif
1138
1139  return MNG_NOERROR;
1140}
1141#endif
1142#endif
1143
1144/* ************************************************************************** */
1145
1146#ifndef MNG_NO_DELTA_PNG
1147#ifndef MNG_SKIPCHUNK_ORDR
1148INIT_CHUNK_HDR (mng_init_ordr)
1149{
1150#ifdef MNG_SUPPORT_TRACE
1151  MNG_TRACE (pData, MNG_FN_INIT_ORDR, MNG_LC_START);
1152#endif
1153
1154  MNG_ALLOC (pData, *ppChunk, sizeof (mng_ordr));
1155  ((mng_ordrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1156
1157#ifdef MNG_SUPPORT_TRACE
1158  MNG_TRACE (pData, MNG_FN_INIT_ORDR, MNG_LC_END);
1159#endif
1160
1161  return MNG_NOERROR;
1162}
1163#endif
1164#endif
1165
1166/* ************************************************************************** */
1167
1168#ifndef MNG_SKIPCHUNK_MAGN
1169INIT_CHUNK_HDR (mng_init_magn)
1170{
1171#ifdef MNG_SUPPORT_TRACE
1172  MNG_TRACE (pData, MNG_FN_INIT_MAGN, MNG_LC_START);
1173#endif
1174
1175  MNG_ALLOC (pData, *ppChunk, sizeof (mng_magn));
1176  ((mng_magnp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1177
1178#ifdef MNG_SUPPORT_TRACE
1179  MNG_TRACE (pData, MNG_FN_INIT_MAGN, MNG_LC_END);
1180#endif
1181
1182  return MNG_NOERROR;
1183}
1184#endif
1185
1186/* ************************************************************************** */
1187
1188#ifndef MNG_SKIPCHUNK_evNT
1189INIT_CHUNK_HDR (mng_init_evnt)
1190{
1191#ifdef MNG_SUPPORT_TRACE
1192  MNG_TRACE (pData, MNG_FN_INIT_EVNT, MNG_LC_START);
1193#endif
1194
1195  MNG_ALLOC (pData, *ppChunk, sizeof (mng_evnt));
1196  ((mng_evntp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1197
1198#ifdef MNG_SUPPORT_TRACE
1199  MNG_TRACE (pData, MNG_FN_INIT_EVNT, MNG_LC_END);
1200#endif
1201
1202  return MNG_NOERROR;
1203}
1204#endif
1205
1206/* ************************************************************************** */
1207
1208INIT_CHUNK_HDR (mng_init_unknown)
1209{
1210#ifdef MNG_SUPPORT_TRACE
1211  MNG_TRACE (pData, MNG_FN_INIT_UNKNOWN, MNG_LC_START);
1212#endif
1213
1214  MNG_ALLOC (pData, *ppChunk, sizeof (mng_unknown_chunk));
1215  ((mng_unknown_chunkp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
1216
1217#ifdef MNG_SUPPORT_TRACE
1218  MNG_TRACE (pData, MNG_FN_INIT_UNKNOWN, MNG_LC_END);
1219#endif
1220
1221  return MNG_NOERROR;
1222}
1223
1224/* ************************************************************************** */
1225
1226#endif /* MNG_OPTIMIZE_CHUNKINITFREE */
1227
1228/* ************************************************************************** */
1229/* *                                                                        * */
1230/* * Chunk specific cleanup routines                                        * */
1231/* *                                                                        * */
1232/* ************************************************************************** */
1233
1234#ifdef MNG_OPTIMIZE_CHUNKINITFREE
1235FREE_CHUNK_HDR (mng_free_general)
1236{
1237  MNG_FREEX (pData, pHeader, ((mng_chunk_headerp)pHeader)->iChunksize);
1238  return MNG_NOERROR;
1239}
1240#endif
1241
1242/* ************************************************************************** */
1243
1244#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1245FREE_CHUNK_HDR (mng_free_ihdr)
1246{
1247#ifdef MNG_SUPPORT_TRACE
1248  MNG_TRACE (pData, MNG_FN_FREE_IHDR, MNG_LC_START);
1249#endif
1250
1251  MNG_FREEX (pData, pHeader, sizeof (mng_ihdr));
1252
1253#ifdef MNG_SUPPORT_TRACE
1254  MNG_TRACE (pData, MNG_FN_FREE_IHDR, MNG_LC_END);
1255#endif
1256
1257  return MNG_NOERROR;
1258}
1259#endif
1260
1261/* ************************************************************************** */
1262
1263#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1264FREE_CHUNK_HDR (mng_free_plte)
1265{
1266#ifdef MNG_SUPPORT_TRACE
1267  MNG_TRACE (pData, MNG_FN_FREE_PLTE, MNG_LC_START);
1268#endif
1269
1270  MNG_FREEX (pData, pHeader, sizeof (mng_plte));
1271
1272#ifdef MNG_SUPPORT_TRACE
1273  MNG_TRACE (pData, MNG_FN_FREE_PLTE, MNG_LC_END);
1274#endif
1275
1276  return MNG_NOERROR;
1277}
1278#endif
1279
1280/* ************************************************************************** */
1281
1282FREE_CHUNK_HDR (mng_free_idat)
1283{
1284#ifdef MNG_SUPPORT_TRACE
1285  MNG_TRACE (pData, MNG_FN_FREE_IDAT, MNG_LC_START);
1286#endif
1287
1288  if (((mng_idatp)pHeader)->iDatasize)
1289    MNG_FREEX (pData, ((mng_idatp)pHeader)->pData,
1290                      ((mng_idatp)pHeader)->iDatasize);
1291
1292#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1293  MNG_FREEX (pData, pHeader, sizeof (mng_idat));
1294#endif
1295
1296#ifdef MNG_SUPPORT_TRACE
1297  MNG_TRACE (pData, MNG_FN_FREE_IDAT, MNG_LC_END);
1298#endif
1299
1300#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1301  return MNG_NOERROR;
1302#else
1303  return mng_free_general(pData, pHeader);
1304#endif
1305}
1306
1307/* ************************************************************************** */
1308
1309#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1310FREE_CHUNK_HDR (mng_free_iend)
1311{
1312#ifdef MNG_SUPPORT_TRACE
1313  MNG_TRACE (pData, MNG_FN_FREE_IEND, MNG_LC_START);
1314#endif
1315
1316  MNG_FREEX (pData, pHeader, sizeof (mng_iend));
1317
1318#ifdef MNG_SUPPORT_TRACE
1319  MNG_TRACE (pData, MNG_FN_FREE_IEND, MNG_LC_END);
1320#endif
1321
1322  return MNG_NOERROR;
1323}
1324#endif
1325
1326/* ************************************************************************** */
1327
1328#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1329FREE_CHUNK_HDR (mng_free_trns)
1330{
1331#ifdef MNG_SUPPORT_TRACE
1332  MNG_TRACE (pData, MNG_FN_FREE_TRNS, MNG_LC_START);
1333#endif
1334
1335  MNG_FREEX (pData, pHeader, sizeof (mng_trns));
1336
1337#ifdef MNG_SUPPORT_TRACE
1338  MNG_TRACE (pData, MNG_FN_FREE_TRNS, MNG_LC_END);
1339#endif
1340
1341  return MNG_NOERROR;
1342}
1343#endif
1344
1345/* ************************************************************************** */
1346
1347#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1348#ifndef MNG_SKIPCHUNK_gAMA
1349FREE_CHUNK_HDR (mng_free_gama)
1350{
1351#ifdef MNG_SUPPORT_TRACE
1352  MNG_TRACE (pData, MNG_FN_FREE_GAMA, MNG_LC_START);
1353#endif
1354
1355  MNG_FREEX (pData, pHeader, sizeof (mng_gama));
1356
1357#ifdef MNG_SUPPORT_TRACE
1358  MNG_TRACE (pData, MNG_FN_FREE_GAMA, MNG_LC_END);
1359#endif
1360
1361  return MNG_NOERROR;
1362}
1363#endif
1364#endif
1365
1366/* ************************************************************************** */
1367
1368#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1369#ifndef MNG_SKIPCHUNK_cHRM
1370FREE_CHUNK_HDR (mng_free_chrm)
1371{
1372#ifdef MNG_SUPPORT_TRACE
1373  MNG_TRACE (pData, MNG_FN_FREE_CHRM, MNG_LC_START);
1374#endif
1375
1376  MNG_FREEX (pData, pHeader, sizeof (mng_chrm));
1377
1378#ifdef MNG_SUPPORT_TRACE
1379  MNG_TRACE (pData, MNG_FN_FREE_CHRM, MNG_LC_END);
1380#endif
1381
1382  return MNG_NOERROR;
1383}
1384#endif
1385#endif
1386
1387/* ************************************************************************** */
1388
1389#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1390#ifndef MNG_SKIPCHUNK_sRGB
1391FREE_CHUNK_HDR (mng_free_srgb)
1392{
1393#ifdef MNG_SUPPORT_TRACE
1394  MNG_TRACE (pData, MNG_FN_FREE_SRGB, MNG_LC_START);
1395#endif
1396
1397  MNG_FREEX (pData, pHeader, sizeof (mng_srgb));
1398
1399#ifdef MNG_SUPPORT_TRACE
1400  MNG_TRACE (pData, MNG_FN_FREE_SRGB, MNG_LC_END);
1401#endif
1402
1403  return MNG_NOERROR;
1404}
1405#endif
1406#endif
1407
1408/* ************************************************************************** */
1409
1410#ifndef MNG_SKIPCHUNK_iCCP
1411FREE_CHUNK_HDR (mng_free_iccp)
1412{
1413#ifdef MNG_SUPPORT_TRACE
1414  MNG_TRACE (pData, MNG_FN_FREE_ICCP, MNG_LC_START);
1415#endif
1416
1417  if (((mng_iccpp)pHeader)->iNamesize)
1418    MNG_FREEX (pData, ((mng_iccpp)pHeader)->zName,
1419                      ((mng_iccpp)pHeader)->iNamesize + 1);
1420
1421  if (((mng_iccpp)pHeader)->iProfilesize)
1422    MNG_FREEX (pData, ((mng_iccpp)pHeader)->pProfile,
1423                      ((mng_iccpp)pHeader)->iProfilesize);
1424
1425#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1426  MNG_FREEX (pData, pHeader, sizeof (mng_iccp));
1427#endif
1428
1429#ifdef MNG_SUPPORT_TRACE
1430  MNG_TRACE (pData, MNG_FN_FREE_ICCP, MNG_LC_END);
1431#endif
1432
1433#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1434  return MNG_NOERROR;
1435#else
1436  return mng_free_general(pData, pHeader);
1437#endif
1438}
1439#endif
1440
1441/* ************************************************************************** */
1442
1443#ifndef MNG_SKIPCHUNK_tEXt
1444FREE_CHUNK_HDR (mng_free_text)
1445{
1446#ifdef MNG_SUPPORT_TRACE
1447  MNG_TRACE (pData, MNG_FN_FREE_TEXT, MNG_LC_START);
1448#endif
1449
1450  if (((mng_textp)pHeader)->iKeywordsize)
1451    MNG_FREEX (pData, ((mng_textp)pHeader)->zKeyword,
1452                      ((mng_textp)pHeader)->iKeywordsize + 1);
1453
1454  if (((mng_textp)pHeader)->iTextsize)
1455    MNG_FREEX (pData, ((mng_textp)pHeader)->zText,
1456                      ((mng_textp)pHeader)->iTextsize + 1);
1457
1458#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1459  MNG_FREEX (pData, pHeader, sizeof (mng_text));
1460#endif
1461
1462#ifdef MNG_SUPPORT_TRACE
1463  MNG_TRACE (pData, MNG_FN_FREE_TEXT, MNG_LC_END);
1464#endif
1465
1466#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1467  return MNG_NOERROR;
1468#else
1469  return mng_free_general(pData, pHeader);
1470#endif
1471}
1472#endif
1473
1474/* ************************************************************************** */
1475
1476#ifndef MNG_SKIPCHUNK_zTXt
1477FREE_CHUNK_HDR (mng_free_ztxt)
1478{
1479#ifdef MNG_SUPPORT_TRACE
1480  MNG_TRACE (pData, MNG_FN_FREE_ZTXT, MNG_LC_START);
1481#endif
1482
1483  if (((mng_ztxtp)pHeader)->iKeywordsize)
1484    MNG_FREEX (pData, ((mng_ztxtp)pHeader)->zKeyword,
1485                      ((mng_ztxtp)pHeader)->iKeywordsize + 1);
1486
1487  if (((mng_ztxtp)pHeader)->iTextsize)
1488    MNG_FREEX (pData, ((mng_ztxtp)pHeader)->zText,
1489                      ((mng_ztxtp)pHeader)->iTextsize);
1490
1491#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1492  MNG_FREEX (pData, pHeader, sizeof (mng_ztxt));
1493#endif
1494
1495#ifdef MNG_SUPPORT_TRACE
1496  MNG_TRACE (pData, MNG_FN_FREE_ZTXT, MNG_LC_END);
1497#endif
1498
1499#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1500  return MNG_NOERROR;
1501#else
1502  return mng_free_general(pData, pHeader);
1503#endif
1504}
1505#endif
1506
1507/* ************************************************************************** */
1508#ifndef MNG_SKIPCHUNK_iTXt
1509FREE_CHUNK_HDR (mng_free_itxt)
1510{
1511#ifdef MNG_SUPPORT_TRACE
1512  MNG_TRACE (pData, MNG_FN_FREE_ITXT, MNG_LC_START);
1513#endif
1514
1515  if (((mng_itxtp)pHeader)->iKeywordsize)
1516    MNG_FREEX (pData, ((mng_itxtp)pHeader)->zKeyword,
1517                      ((mng_itxtp)pHeader)->iKeywordsize + 1);
1518
1519  if (((mng_itxtp)pHeader)->iLanguagesize)
1520    MNG_FREEX (pData, ((mng_itxtp)pHeader)->zLanguage,
1521                      ((mng_itxtp)pHeader)->iLanguagesize + 1);
1522
1523  if (((mng_itxtp)pHeader)->iTranslationsize)
1524    MNG_FREEX (pData, ((mng_itxtp)pHeader)->zTranslation,
1525                      ((mng_itxtp)pHeader)->iTranslationsize + 1);
1526
1527  if (((mng_itxtp)pHeader)->iTextsize)
1528    MNG_FREEX (pData, ((mng_itxtp)pHeader)->zText,
1529                      ((mng_itxtp)pHeader)->iTextsize);
1530
1531#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1532  MNG_FREEX (pData, pHeader, sizeof (mng_itxt));
1533#endif
1534
1535#ifdef MNG_SUPPORT_TRACE
1536  MNG_TRACE (pData, MNG_FN_FREE_ITXT, MNG_LC_END);
1537#endif
1538
1539#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1540  return MNG_NOERROR;
1541#else
1542  return mng_free_general(pData, pHeader);
1543#endif
1544}
1545#endif
1546
1547/* ************************************************************************** */
1548#ifdef MNG_INCLUDE_MPNG_PROPOSAL
1549FREE_CHUNK_HDR (mng_free_mpng)
1550{
1551#ifdef MNG_SUPPORT_TRACE
1552  MNG_TRACE (pData, MNG_FN_FREE_MPNG, MNG_LC_START);
1553#endif
1554
1555  if (((mng_mpngp)pHeader)->iFramessize)
1556    MNG_FREEX (pData, ((mng_mpngp)pHeader)->pFrames,
1557                      ((mng_mpngp)pHeader)->iFramessize);
1558
1559#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1560  MNG_FREEX (pData, pHeader, sizeof (mng_mpng));
1561#endif
1562
1563#ifdef MNG_SUPPORT_TRACE
1564  MNG_TRACE (pData, MNG_FN_FREE_MPNG, MNG_LC_END);
1565#endif
1566
1567#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1568  return MNG_NOERROR;
1569#else
1570  return mng_free_general(pData, pHeader);
1571#endif
1572}
1573#endif
1574
1575/* ************************************************************************** */
1576#ifdef MNG_INCLUDE_ANG_PROPOSAL
1577FREE_CHUNK_HDR (mng_free_adat)
1578{
1579#ifdef MNG_SUPPORT_TRACE
1580  MNG_TRACE (pData, MNG_FN_FREE_ADAT, MNG_LC_START);
1581#endif
1582
1583  if (((mng_adatp)pHeader)->iTilessize)
1584    MNG_FREEX (pData, ((mng_adatp)pHeader)->pTiles, ((mng_adatp)pHeader)->iTilessize);
1585
1586#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1587  MNG_FREEX (pData, pHeader, sizeof (mng_adat));
1588#endif
1589
1590#ifdef MNG_SUPPORT_TRACE
1591  MNG_TRACE (pData, MNG_FN_FREE_ADAT, MNG_LC_END);
1592#endif
1593
1594#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1595  return MNG_NOERROR;
1596#else
1597  return mng_free_general(pData, pHeader);
1598#endif
1599}
1600#endif
1601
1602/* ************************************************************************** */
1603
1604#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1605#ifndef MNG_SKIPCHUNK_bKGD
1606FREE_CHUNK_HDR (mng_free_bkgd)
1607{
1608#ifdef MNG_SUPPORT_TRACE
1609  MNG_TRACE (pData, MNG_FN_FREE_BKGD, MNG_LC_START);
1610#endif
1611
1612  MNG_FREEX (pData, pHeader, sizeof (mng_bkgd));
1613
1614#ifdef MNG_SUPPORT_TRACE
1615  MNG_TRACE (pData, MNG_FN_FREE_BKGD, MNG_LC_END);
1616#endif
1617
1618  return MNG_NOERROR;
1619}
1620#endif
1621#endif
1622
1623/* ************************************************************************** */
1624
1625#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1626#ifndef MNG_SKIPCHUNK_pHYs
1627FREE_CHUNK_HDR (mng_free_phys)
1628{
1629#ifdef MNG_SUPPORT_TRACE
1630  MNG_TRACE (pData, MNG_FN_FREE_PHYS, MNG_LC_START);
1631#endif
1632
1633  MNG_FREEX (pData, pHeader, sizeof (mng_phys));
1634
1635#ifdef MNG_SUPPORT_TRACE
1636  MNG_TRACE (pData, MNG_FN_FREE_PHYS, MNG_LC_END);
1637#endif
1638
1639  return MNG_NOERROR;
1640}
1641#endif
1642#endif
1643
1644/* ************************************************************************** */
1645
1646#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1647#ifndef MNG_SKIPCHUNK_sBIT
1648FREE_CHUNK_HDR (mng_free_sbit)
1649{
1650#ifdef MNG_SUPPORT_TRACE
1651  MNG_TRACE (pData, MNG_FN_FREE_SBIT, MNG_LC_START);
1652#endif
1653
1654  MNG_FREEX (pData, pHeader, sizeof (mng_sbit));
1655
1656#ifdef MNG_SUPPORT_TRACE
1657  MNG_TRACE (pData, MNG_FN_FREE_SBIT, MNG_LC_END);
1658#endif
1659
1660  return MNG_NOERROR;
1661}
1662#endif
1663#endif
1664
1665/* ************************************************************************** */
1666
1667#ifndef MNG_SKIPCHUNK_sPLT
1668FREE_CHUNK_HDR (mng_free_splt)
1669{
1670#ifdef MNG_SUPPORT_TRACE
1671  MNG_TRACE (pData, MNG_FN_FREE_SPLT, MNG_LC_START);
1672#endif
1673
1674  if (((mng_spltp)pHeader)->iNamesize)
1675    MNG_FREEX (pData, ((mng_spltp)pHeader)->zName,
1676                      ((mng_spltp)pHeader)->iNamesize + 1);
1677
1678  if (((mng_spltp)pHeader)->iEntrycount)
1679    MNG_FREEX (pData, ((mng_spltp)pHeader)->pEntries,
1680                      ((mng_spltp)pHeader)->iEntrycount *
1681                      (((mng_spltp)pHeader)->iSampledepth * 3 + sizeof (mng_uint16)) );
1682
1683#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1684  MNG_FREEX (pData, pHeader, sizeof (mng_splt));
1685#endif
1686
1687#ifdef MNG_SUPPORT_TRACE
1688  MNG_TRACE (pData, MNG_FN_FREE_SPLT, MNG_LC_END);
1689#endif
1690
1691#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1692  return MNG_NOERROR;
1693#else
1694  return mng_free_general(pData, pHeader);
1695#endif
1696}
1697#endif
1698
1699/* ************************************************************************** */
1700
1701#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1702#ifndef MNG_SKIPCHUNK_hIST
1703FREE_CHUNK_HDR (mng_free_hist)
1704{
1705#ifdef MNG_SUPPORT_TRACE
1706  MNG_TRACE (pData, MNG_FN_FREE_HIST, MNG_LC_START);
1707#endif
1708
1709  MNG_FREEX (pData, pHeader, sizeof (mng_hist));
1710
1711#ifdef MNG_SUPPORT_TRACE
1712  MNG_TRACE (pData, MNG_FN_FREE_HIST, MNG_LC_END);
1713#endif
1714
1715  return MNG_NOERROR;
1716}
1717#endif
1718#endif
1719
1720/* ************************************************************************** */
1721
1722#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1723#ifndef MNG_SKIPCHUNK_tIME
1724FREE_CHUNK_HDR (mng_free_time)
1725{
1726#ifdef MNG_SUPPORT_TRACE
1727  MNG_TRACE (pData, MNG_FN_FREE_TIME, MNG_LC_START);
1728#endif
1729
1730  MNG_FREEX (pData, pHeader, sizeof (mng_time));
1731
1732#ifdef MNG_SUPPORT_TRACE
1733  MNG_TRACE (pData, MNG_FN_FREE_TIME, MNG_LC_END);
1734#endif
1735
1736  return MNG_NOERROR;
1737}
1738#endif
1739#endif
1740
1741/* ************************************************************************** */
1742
1743#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1744FREE_CHUNK_HDR (mng_free_mhdr)
1745{
1746#ifdef MNG_SUPPORT_TRACE
1747  MNG_TRACE (pData, MNG_FN_FREE_MHDR, MNG_LC_START);
1748#endif
1749
1750  MNG_FREEX (pData, pHeader, sizeof (mng_mhdr));
1751
1752#ifdef MNG_SUPPORT_TRACE
1753  MNG_TRACE (pData, MNG_FN_FREE_MHDR, MNG_LC_END);
1754#endif
1755
1756  return MNG_NOERROR;
1757}
1758#endif
1759
1760/* ************************************************************************** */
1761
1762#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1763FREE_CHUNK_HDR (mng_free_mend)
1764{
1765#ifdef MNG_SUPPORT_TRACE
1766  MNG_TRACE (pData, MNG_FN_FREE_MEND, MNG_LC_START);
1767#endif
1768
1769  MNG_FREEX (pData, pHeader, sizeof (mng_mend));
1770
1771#ifdef MNG_SUPPORT_TRACE
1772  MNG_TRACE (pData, MNG_FN_FREE_MEND, MNG_LC_END);
1773#endif
1774
1775  return MNG_NOERROR;
1776}
1777#endif
1778
1779/* ************************************************************************** */
1780
1781#ifndef MNG_SKIPCHUNK_LOOP
1782FREE_CHUNK_HDR (mng_free_loop)
1783{
1784#ifdef MNG_SUPPORT_TRACE
1785  MNG_TRACE (pData, MNG_FN_FREE_LOOP, MNG_LC_START);
1786#endif
1787
1788#ifndef MNG_NO_LOOP_SIGNALS_SUPPORTED
1789  if (((mng_loopp)pHeader)->iCount)
1790    MNG_FREEX (pData, ((mng_loopp)pHeader)->pSignals,
1791                      ((mng_loopp)pHeader)->iCount * sizeof (mng_uint32) );
1792#endif
1793
1794#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1795  MNG_FREEX (pData, pHeader, sizeof (mng_loop));
1796#endif
1797
1798#ifdef MNG_SUPPORT_TRACE
1799  MNG_TRACE (pData, MNG_FN_FREE_LOOP, MNG_LC_END);
1800#endif
1801
1802#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1803  return MNG_NOERROR;
1804#else
1805  return mng_free_general(pData, pHeader);
1806#endif
1807}
1808
1809/* ************************************************************************** */
1810
1811#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1812FREE_CHUNK_HDR (mng_free_endl)
1813{
1814#ifdef MNG_SUPPORT_TRACE
1815  MNG_TRACE (pData, MNG_FN_FREE_ENDL, MNG_LC_START);
1816#endif
1817
1818  MNG_FREEX (pData, pHeader, sizeof (mng_endl));
1819
1820#ifdef MNG_SUPPORT_TRACE
1821  MNG_TRACE (pData, MNG_FN_FREE_ENDL, MNG_LC_END);
1822#endif
1823
1824  return MNG_NOERROR;
1825}
1826#endif
1827#endif
1828
1829/* ************************************************************************** */
1830
1831#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1832#ifndef MNG_SKIPCHUNK_DEFI
1833FREE_CHUNK_HDR (mng_free_defi)
1834{
1835#ifdef MNG_SUPPORT_TRACE
1836  MNG_TRACE (pData, MNG_FN_FREE_DEFI, MNG_LC_START);
1837#endif
1838
1839  MNG_FREEX (pData, pHeader, sizeof (mng_defi));
1840
1841#ifdef MNG_SUPPORT_TRACE
1842  MNG_TRACE (pData, MNG_FN_FREE_DEFI, MNG_LC_END);
1843#endif
1844
1845  return MNG_NOERROR;
1846}
1847#endif
1848#endif
1849
1850/* ************************************************************************** */
1851
1852#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1853#ifndef MNG_SKIPCHUNK_BASI
1854FREE_CHUNK_HDR (mng_free_basi)
1855{
1856#ifdef MNG_SUPPORT_TRACE
1857  MNG_TRACE (pData, MNG_FN_FREE_BASI, MNG_LC_START);
1858#endif
1859
1860  MNG_FREEX (pData, pHeader, sizeof (mng_basi));
1861
1862#ifdef MNG_SUPPORT_TRACE
1863  MNG_TRACE (pData, MNG_FN_FREE_BASI, MNG_LC_END);
1864#endif
1865
1866  return MNG_NOERROR;
1867}
1868#endif
1869#endif
1870
1871/* ************************************************************************** */
1872
1873#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1874#ifndef MNG_SKIPCHUNK_CLON
1875FREE_CHUNK_HDR (mng_free_clon)
1876{
1877#ifdef MNG_SUPPORT_TRACE
1878  MNG_TRACE (pData, MNG_FN_FREE_CLON, MNG_LC_START);
1879#endif
1880
1881  MNG_FREEX (pData, pHeader, sizeof (mng_clon));
1882
1883#ifdef MNG_SUPPORT_TRACE
1884  MNG_TRACE (pData, MNG_FN_FREE_CLON, MNG_LC_END);
1885#endif
1886
1887  return MNG_NOERROR;
1888}
1889#endif
1890#endif
1891
1892/* ************************************************************************** */
1893
1894#ifndef MNG_SKIPCHUNK_PAST
1895FREE_CHUNK_HDR (mng_free_past)
1896{
1897#ifdef MNG_SUPPORT_TRACE
1898  MNG_TRACE (pData, MNG_FN_FREE_PAST, MNG_LC_START);
1899#endif
1900
1901  if (((mng_pastp)pHeader)->iCount)
1902    MNG_FREEX (pData, ((mng_pastp)pHeader)->pSources,
1903                      ((mng_pastp)pHeader)->iCount * sizeof (mng_past_source) );
1904
1905#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1906  MNG_FREEX (pData, pHeader, sizeof (mng_past));
1907#endif
1908
1909#ifdef MNG_SUPPORT_TRACE
1910  MNG_TRACE (pData, MNG_FN_FREE_PAST, MNG_LC_END);
1911#endif
1912
1913#ifndef MNG_OPTIMIZE_CHUNKINITFREE
1914  return MNG_NOERROR;
1915#else
1916  return mng_free_general(pData, pHeader);
1917#endif
1918}
1919#endif
1920
1921/* ************************************************************************** */
1922
1923#ifndef MNG_SKIPCHUNK_DISC
1924FREE_CHUNK_HDR (mng_free_disc)
1925{
1926#ifdef MNG_SUPPORT_TRACE
1927  MNG_TRACE (pData, MNG_FN_FREE_DISC, MNG_LC_START);
1928#endif
1929
1930  if (((mng

Large files files are truncated, but you can click here to view the full file