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)12 GrB_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