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 } |