Doxygen Source Code Documentation
thd_delete.c File Reference
#include "mrilib.h"#include "thd.h"Go to the source code of this file.
Functions | |
| void | THD_delete_diskptr (THD_diskptr *dkptr) |
| void | THD_delete_datablock (THD_datablock *dblk) |
| void | THD_delete_3dim_dataset (THD_3dim_dataset *dset, Boolean kill_files) |
Function Documentation
|
||||||||||||
|
|
Definition at line 23 of file thd_delete.c. References THD_datablock::atr, THD_datablock::brick, THD_datablock::brick_bytes, THD_datablock::brick_fac, THD_datablock::brick_keywords, THD_datablock::brick_lab, THD_datablock::brick_stataux, THD_datablock::brick_statcode, DATABLOCK_MEM_MALLOC, DATABLOCK_MEM_MMAP, DATABLOCK_MEM_SHARED, DBLK_IS_MASTERED, DESTROY_IMARR, THD_datablock::diskptr, ENTRY, FREE_IMARR, ISVALID_DATABLOCK, KILL_KILL, THD_datablock::kl, THD_datablock::locked, THD_datablock::malloc_type, THD_datablock::master_bytes, THD_datablock::master_ival, myXtFree, THD_datablock::nvals, STATUS, THD_count_databricks(), THD_delete_diskptr(), and THD_purge_datablock(). Referenced by THD_delete_3dim_dataset(), THD_init_one_datablock(), and THD_niml_to_dataset().
00024 {
00025 int ibr ;
00026
00027 ENTRY("THD_delete_datablock") ;
00028
00029 if( ! ISVALID_DATABLOCK(dblk) ) EXRETURN ;
00030
00031 /** free the actual brick data (method depends on how it is stored) **/
00032
00033 if( dblk->brick != NULL ){
00034 dblk->locked = 0 ;
00035
00036 switch( dblk->malloc_type ){
00037
00038 default:
00039 STATUS("count bricks") ;
00040 ibr = THD_count_databricks( dblk ) ;
00041 if( ibr > 0 )
00042 fprintf(stderr,
00043 "** attempt to delete non-NULL unknown type of datablock **\n");
00044
00045 if( dblk->brick != NULL ) FREE_IMARR( dblk->brick ) ;
00046 break ;
00047
00048 case DATABLOCK_MEM_MALLOC:
00049 case DATABLOCK_MEM_MMAP:
00050 THD_purge_datablock( dblk , dblk->malloc_type ) ;
00051 DESTROY_IMARR( dblk->brick ) ;
00052 break ;
00053
00054 case DATABLOCK_MEM_SHARED: /* 02 May 2003 */
00055 /* ??? */
00056 break ;
00057 }
00058 }
00059
00060 /** free the other information **/
00061
00062 STATUS("free brick_ stuff") ;
00063
00064 myXtFree( dblk->brick_fac ) ;
00065 myXtFree( dblk->brick_bytes ) ;
00066
00067 /** 30 Nov 1997 **/
00068
00069 if( dblk->brick_lab != NULL ){
00070 for( ibr=0 ; ibr < dblk->nvals ; ibr++ ) myXtFree( dblk->brick_lab[ibr] ) ;
00071 myXtFree( dblk->brick_lab ) ;
00072 }
00073
00074 if( dblk->brick_keywords != NULL ){
00075 for( ibr=0 ; ibr < dblk->nvals ; ibr++ ) myXtFree( dblk->brick_keywords[ibr] ) ;
00076 myXtFree( dblk->brick_keywords ) ;
00077 }
00078
00079 if( dblk->brick_statcode != NULL ) myXtFree( dblk->brick_statcode ) ;
00080 if( dblk->brick_stataux != NULL ){
00081 for( ibr=0 ; ibr < dblk->nvals ; ibr++ ) myXtFree( dblk->brick_stataux[ibr] ) ;
00082 myXtFree( dblk->brick_stataux ) ;
00083 }
00084
00085 if( DBLK_IS_MASTERED(dblk) ){ /* 11 Jan 1999 */
00086 myXtFree( dblk->master_ival ) ;
00087 myXtFree( dblk->master_bytes ) ;
00088 }
00089
00090 THD_delete_diskptr( dblk->diskptr ) ;
00091
00092 STATUS("KILL_KILL") ;
00093 KILL_KILL( dblk->kl ) ;
00094
00095 STATUS("free attributes") ;
00096 myXtFree( dblk->atr ) ; /* not on the kill list */
00097
00098 EXRETURN ;
00099 }
|
|
|
Definition at line 14 of file thd_delete.c. References ISVALID_DISKPTR. Referenced by THD_delete_datablock().
00015 {
00016 if( ! ISVALID_DISKPTR(dkptr) ) return ;
00017 }
|