#include "mlt_deque.h"
#include <stdlib.h>
-#include <malloc.h>
#include <string.h>
#include <pthread.h>
+// Not nice - memalign is defined here apparently?
+#ifdef linux
+#include <malloc.h>
+#endif
+
/** Singleton repositories
*/
else
{
// We need to generate a release item
+#ifdef linux
mlt_release release = memalign( 16, this->size );
+#else
+ mlt_release release = malloc( this->size );
+#endif
// Initialise it
if ( release != NULL )
{
+ // Increment the number of items allocated to this pool
+ this->count ++;
+
// Assign the pool
release->pool = this;
void mlt_pool_close( )
{
+#ifdef _MLT_POOL_CHECKS_
+ // Stats dump on close
+ int i = 0;
+ fprintf( stderr, "Usage:\n\n" );
+ for ( i = 0; i < mlt_properties_count( pools ); i ++ )
+ {
+ mlt_pool pool = mlt_properties_get_data_at( pools, i, NULL );
+ if ( pool->count )
+ fprintf( stderr, "%d: allocated %d returned %d %c\n", pool->size, pool->count, mlt_deque_count( pool->stack ),
+ pool->count != mlt_deque_count( pool->stack ) ? '*' : ' ' );
+ }
+#endif
+
// Close the properties
mlt_properties_close( pools );
}