1 //------------------------------------------------------------------------------ 2 // GrB_Type_free: free a user-defined type 3 //------------------------------------------------------------------------------ 4 5 // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved. 6 // SPDX-License-Identifier: Apache-2.0 7 8 //------------------------------------------------------------------------------ 9 10 #include "GB.h" 11 GrB_Type_free(GrB_Type * type)12GrB_Info GrB_Type_free // free a user-defined type 13 ( 14 GrB_Type *type // handle of user-defined type to free 15 ) 16 { 17 18 if (type != NULL) 19 { 20 // only free a dynamically-allocated type 21 GrB_Type t = *type ; 22 if (t != NULL) 23 { 24 size_t header_size = t->header_size ; 25 if (header_size > 0) 26 { 27 t->magic = GB_FREED ; // to help detect dangling pointers 28 t->header_size = 0 ; 29 GB_FREE (type, header_size) ; 30 } 31 } 32 } 33 34 return (GrB_SUCCESS) ; 35 } 36 37