1 //------------------------------------------------------------------------------
2 // GrB_Semiring_free: free a semiring
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_Semiring_free(GrB_Semiring * semiring)12 GrB_Info GrB_Semiring_free          // free a user-created semiring
13 (
14     GrB_Semiring *semiring          // handle of semiring to free
15 )
16 {
17 
18     if (semiring != NULL)
19     {
20         // only free a dynamically-allocated semiring
21         GrB_Semiring s = *semiring ;
22         if (s != NULL)
23         {
24             size_t header_size = s->header_size ;
25             if (header_size > 0)
26             {
27                 s->magic = GB_FREED ;  // to help detect dangling pointers
28                 s->header_size = 0 ;
29                 GB_FREE (semiring, header_size) ;
30             }
31         }
32     }
33 
34     return (GrB_SUCCESS) ;
35 }
36 
37