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