From 5655953a2adcdcfe2f0d5599a52d36fbea405817 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Tue, 18 Feb 2003 07:16:27 -0500 Subject: [svn-r6415] Purpose: Code cleanup Description: Changed hard-coded magic number (32) for the maximum number of filters in a filter pipeline to use a symbolic constant (H5Z_MAX_NFILTERS) instead. This limit could (and probably should) be removed to allow an unlimited number of filters in a pipeline. Platforms tested: FreeBSD 4.7 (sleipnir) --- src/H5Opline.c | 6 ++++-- src/H5Pdcpl.c | 2 -- src/H5Z.c | 35 +++++++++++++++++++++-------------- src/H5Zprivate.h | 21 ++++++++++++++++----- src/H5Zpublic.h | 22 +++++++++++++++++----- 5 files changed, 58 insertions(+), 28 deletions(-) diff --git a/src/H5Opline.c b/src/H5Opline.c index a8d1426..3bdffe7 100644 --- a/src/H5Opline.c +++ b/src/H5Opline.c @@ -27,8 +27,10 @@ #include "H5MMprivate.h" #include "H5Opkg.h" /* Object header functions */ -/* Interface initialization */ +/* Pablo mask */ #define PABLO_MASK H5O_pline_mask + +/* Interface initialization */ static int interface_initialize_g = 0; #define INTERFACE_INIT NULL @@ -101,7 +103,7 @@ H5O_pline_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const uint8_t *p, if (version!=H5O_PLINE_VERSION) HGOTO_ERROR(H5E_PLINE, H5E_CANTLOAD, NULL, "bad version number for filter pipeline message"); pline->nfilters = *p++; - if (pline->nfilters>32) + if (pline->nfilters>H5Z_MAX_NFILTERS) HGOTO_ERROR(H5E_PLINE, H5E_CANTLOAD, NULL, "filter pipeline message has too many filters"); p += 6; /*reserved*/ pline->nalloc = pline->nfilters; diff --git a/src/H5Pdcpl.c b/src/H5Pdcpl.c index a938d12..438983e 100644 --- a/src/H5Pdcpl.c +++ b/src/H5Pdcpl.c @@ -12,8 +12,6 @@ * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* $Id$ */ - #define H5P_PACKAGE /*suppress error about including H5Ppkg */ /* Private header files */ diff --git a/src/H5Z.c b/src/H5Z.c index 76fdfd6..13786e5 100644 --- a/src/H5Z.c +++ b/src/H5Z.c @@ -1,20 +1,27 @@ -/* - * Copyright (C) 1998-2001 NCSA - * All rights reserved. - * - * Programmer: Robb Matzke - * Thursday, April 16, 1998 - * - * Purpose: Functions for data filters. - */ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + #include "H5private.h" #include "H5Eprivate.h" #include "H5MMprivate.h" #include "H5Oprivate.h" #include "H5Zprivate.h" -/* Interface initialization */ +/* Pablo mask */ #define PABLO_MASK H5Z_mask + +/* Interface initialization */ #define INTERFACE_INIT H5Z_init_interface static int interface_initialize_g = 0; static herr_t H5Z_init_interface (void); @@ -215,7 +222,7 @@ H5Z_register (H5Z_filter_t id, const char *comment, H5Z_func_t func) } if (i>=H5Z_table_used_g) { if (H5Z_table_used_g>=H5Z_table_alloc_g) { - size_t n = MAX(32, 2*H5Z_table_alloc_g); + size_t n = MAX(H5Z_MAX_NFILTERS, 2*H5Z_table_alloc_g); H5Z_class_t *table = H5MM_realloc(H5Z_table_g, n*sizeof(H5Z_class_t)); if (!table) @@ -394,13 +401,13 @@ H5Z_append(H5O_pline_t *pline, H5Z_filter_t filter, unsigned flags, * Check filter limit. We do it here for early warnings although we may * decide to relax this restriction in the future. */ - if (pline->nfilters>=32) + if (pline->nfilters>=H5Z_MAX_NFILTERS) HGOTO_ERROR(H5E_PLINE, H5E_CANTINIT, FAIL, "too many filters in pipeline"); /* Allocate additional space in the pipeline if it's full */ if (pline->nfilters>=pline->nalloc) { H5O_pline_t x; - x.nalloc = MAX(32, 2*pline->nalloc); + x.nalloc = MAX(H5Z_MAX_NFILTERS, 2*pline->nalloc); x.filter = H5MM_realloc(pline->filter, x.nalloc*sizeof(x.filter[0])); if (NULL==x.filter) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed for filter pipeline"); @@ -516,7 +523,7 @@ H5Z_pipeline(H5F_t UNUSED *f, const H5O_pline_t *pline, unsigned flags, assert(nbytes && *nbytes>0); assert(buf_size && *buf_size>0); assert(buf && *buf); - assert(!pline || pline->nfilters<32); + assert(!pline || pline->nfiltersnfilters; i>0; --i) { diff --git a/src/H5Zprivate.h b/src/H5Zprivate.h index be87d9e..07cf38b 100644 --- a/src/H5Zprivate.h +++ b/src/H5Zprivate.h @@ -1,10 +1,21 @@ -/* - * Copyright (C) 1998-2001 NCSA - * All rights reserved. - * - * Programmer: Robb Matzke +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Programmer: Robb Matzke * Thursday, April 16, 1998 */ + #ifndef _H5Zprivate_H #define _H5Zprivate_H diff --git a/src/H5Zpublic.h b/src/H5Zpublic.h index 3acf54d..8893a88 100644 --- a/src/H5Zpublic.h +++ b/src/H5Zpublic.h @@ -1,10 +1,21 @@ -/* - * Copyright (C) 1998 NCSA - * All rights reserved. - * - * Programmer: Robb Matzke +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* Programmer: Robb Matzke * Thursday, April 16, 1998 */ + #ifndef _H5Zpublic_H #define _H5Zpublic_H @@ -23,6 +34,7 @@ typedef int H5Z_filter_t; #define H5Z_FILTER_FLETCHER32 3 /*fletcher32 checksum of EDC */ #define H5Z_FILTER_RESERVED 256 /*filter ids below this value are reserved */ #define H5Z_FILTER_MAX 65535 /*maximum filter id */ +#define H5Z_MAX_NFILTERS 32 /* Maximum number of filters allowed in a pipeline (should probably be allowed to be an unlimited amount) */ /* Flags for filter definition */ #define H5Z_FLAG_DEFMASK 0x00ff /*definition flag mask */ -- cgit v0.12