X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fframework%2Fmlt_property.c;h=1a458d86df47399769a3d63116551185619f17fd;hb=9ad7cb6cdea367db7a720fa0335f8b8eccf0ae09;hp=eaa19675ba5134f8d49d45449d04bb32db25d100;hpb=12d4027b3039f13c4b5f9fdb12f2fb4b7d3c3f44;p=melted diff --git a/src/framework/mlt_property.c b/src/framework/mlt_property.c index eaa1967..1a458d8 100644 --- a/src/framework/mlt_property.c +++ b/src/framework/mlt_property.c @@ -31,13 +31,27 @@ mlt_property mlt_property_init( ) { - return calloc( 1, sizeof( struct mlt_property_s ) ); + mlt_property this = malloc( sizeof( struct mlt_property_s ) ); + if ( this != NULL ) + { + this->types = 0; + this->prop_int = 0; + this->prop_position = 0; + this->prop_double = 0; + this->prop_int64 = 0; + this->prop_string = NULL; + this->data = NULL; + this->length = 0; + this->destructor = NULL; + this->serialiser = NULL; + } + return this; } /** Clear a property. */ -void mlt_property_clear( mlt_property this ) +static inline void mlt_property_clear( mlt_property this ) { // Special case data handling if ( this->types & mlt_prop_data && this->destructor != NULL ) @@ -47,8 +61,17 @@ void mlt_property_clear( mlt_property this ) if ( this->types & mlt_prop_string ) free( this->prop_string ); - // We can wipe it now. - memset( this, 0, sizeof( struct mlt_property_s ) ); + // Wipe stuff + this->types = 0; + this->prop_int = 0; + this->prop_position = 0; + this->prop_double = 0; + this->prop_int64 = 0; + this->prop_string = NULL; + this->data = NULL; + this->length = 0; + this->destructor = NULL; + this->serialiser = NULL; } /** Set an int on this property. @@ -93,7 +116,7 @@ int mlt_property_set_string( mlt_property this, char *value ) this->types = mlt_prop_string; if ( value != NULL ) this->prop_string = strdup( value ); - return this->prop_string != NULL; + return this->prop_string == NULL; } /** Set an int64 on this property.