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