WEBVTT_EXPORT void webvtt_release_node( webvtt_node **node ) { webvtt_uint i; webvtt_node *n; if( !node || !*node ) { return; } n = *node; if( webvtt_deref( &n->refs ) == 0 ) { if( n->kind == WEBVTT_TEXT ) { webvtt_release_string( &n->data.text ); } else if( WEBVTT_IS_VALID_INTERNAL_NODE( n->kind ) && n->data.internal_data ) { webvtt_release_stringlist( &n->data.internal_data->css_classes ); webvtt_release_string( &n->data.internal_data->annotation ); for( i = 0; i < n->data.internal_data->length; i++ ) { webvtt_release_node( n->data.internal_data->children + i ); } webvtt_free( n->data.internal_data->children ); webvtt_free( n->data.internal_data ); } webvtt_free( n ); } *node = 0; }
WEBVTT_EXPORT void webvtt_release_cue( webvtt_cue **pcue ) { if( pcue && *pcue ) { webvtt_cue *cue = *pcue; *pcue = 0; if( webvtt_deref( &cue->refs ) == 0 ) { webvtt_release_string( &cue->id ); webvtt_release_node( &cue->node_head ); webvtt_free( cue ); } } }