MEDfilterClose.c
Aller à la documentation de ce fichier.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <med.h>
00020 #include <med_config.h>
00021 #include <med_outils.h>
00022
00035 med_err MEDfilterClose( med_filter * const filter ) {
00036
00037 med_err _ret =-1;
00038 int _i=0;
00039 med_idt _memspace[MED_MAX_FILTER_SPACES]=MED_MAX_FILTER_SPACES_INIT;
00040 med_idt _diskspace[MED_MAX_FILTER_SPACES]=MED_MAX_FILTER_SPACES_INIT;
00041
00042 for (_i=0; _i < (*filter).nspaces; ++_i) {
00043 if ( H5Sclose((*filter).memspace[_i]) < 0 ) {
00044 MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATASPACE, MED_ERR_ID_MSG );
00045 ISCRUTE_id((*filter).memspace[_i]);
00046 ISCRUTE_int(_i);
00047 ISCRUTE((*filter).nspaces);
00048 goto ERROR;
00049 } else
00050 (*filter).memspace[_i]=0;
00051
00052 if ( H5Sclose((*filter).diskspace[_i]) < 0 ) {
00053 MED_ERR_(_ret,MED_ERR_CLOSE,MED_ERR_DATASPACE, MED_ERR_ID_MSG );
00054 ISCRUTE_id((*filter).diskspace[_i]);
00055 ISCRUTE_int(_i);
00056 ISCRUTE((*filter).nspaces);
00057 goto ERROR;
00058 } else
00059 (*filter).diskspace[_i]=0;
00060 }
00061
00062
00063 (*filter).nspaces=0;
00064
00065
00066
00067 if ((*filter).filterarray23v30) {
00068 free((*filter).filterarray23v30);
00069 (*filter).filterarray23v30 = NULL;
00070 }
00071
00072 if ( _MEDsetFilter(MED_MAX_FILTER_SPACES,_memspace, _diskspace,
00073 0, 0, 0, 0, MED_UNDEF_INTERLACE,
00074 MED_NO_FILTER_SIZE, MED_NO_PROFILE_SIZE,
00075 MED_UNDEF_PFLMODE, MED_NO_PROFILE, filter ) <0) {
00076 MED_ERR_(_ret,MED_ERR_INIT,MED_ERR_FILTER,"");
00077 goto ERROR;
00078 }
00079 (*filter).nspaces=0;
00080
00081 _ret = 0;
00082 ERROR:
00083 return _ret;
00084 }