if ( !producer )
{
mlt_service_close( service );
+ free( service );
return;
}
// Push the producer onto the stack
context_push_service( context, producer, mlt_producer_type );
}
+ }
+ if ( service )
+ {
mlt_service_close( service );
+ free( service );
}
}
if ( parent != NULL )
context_push_service( context, parent, parent_type );
-
- mlt_service_close( track );
}
else
{
mlt_log_error( NULL, "[producer_xml] Invalid state at end of track\n" );
}
+
+ if ( track )
+ {
+ mlt_service_close( track );
+ free( track );
+ }
}
static void on_start_filter( deserialise_context context, const xmlChar *name, const xmlChar **atts)
if ( parent )
context_push_service( context, parent, parent_type );
mlt_service_close( service );
+ free( service );
return;
}
{
mlt_log_error( NULL, "[producer_xml] filter closed with invalid parent...\n" );
}
-
- // Close the dummy filter service
- mlt_service_close( service );
}
else
{
mlt_log_error( NULL, "[producer_xml] Invalid top of stack on filter close\n" );
}
+
+ if ( service )
+ {
+ mlt_service_close( service );
+ free(service);
+ }
}
static void on_start_transition( deserialise_context context, const xmlChar *name, const xmlChar **atts)
if ( parent )
context_push_service( context, parent, parent_type );
mlt_service_close( service );
+ free( service );
return;
}
track_service( context->destructors, effect, (mlt_destructor) mlt_transition_close );
mlt_log_error( NULL, "[producer_xml] transition closed with invalid parent...\n" );
}
- // Close the dummy filter service
- mlt_service_close( service );
}
else
{
mlt_log_error( NULL, "[producer_xml] Invalid top of stack on transition close\n" );
}
+
+ if ( service )
+ {
+ mlt_service_close( service );
+ free( service );
+ }
}
static void on_start_consumer( deserialise_context context, const xmlChar *name, const xmlChar **atts)