+ {
+ int n = self->count + 1;
+ while ( --n )
+ if ( cmp( item, self->list[ n - 1 ].addr ) >= 0 )
+ break;
+ memmove( &self->list[ n + 1 ], &self->list[ n ], ( self->count - n ) * sizeof( deque_entry ) );
+ self->list[ n ].addr = item;
+ self->count++;
+ }
+ return error;
+}
+
+/** Push an integer to the end.
+ *
+ * \public \memberof mlt_deque_s
+ * \param self a deque
+ * \param item an integer
+ * \return true if there was an error
+ */
+
+int mlt_deque_push_back_int( mlt_deque self, int item )
+{
+ int error = mlt_deque_allocate( self );
+
+ if ( error == 0 )
+ self->list[ self->count ++ ].value = item;