Add cursor allocation debugging code that is turned off as long as DEBUG_CURSORS is not defined. --- server/red_worker.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c index 1e6f495..43373af 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -81,6 +81,7 @@ //#define DRAW_ALL //#define COMPRESS_DEBUG //#define ACYCLIC_SURFACE_DEBUG +//#define DEBUG_CURSORS //#define UPDATE_AREA_BY_TREE @@ -4422,12 +4423,20 @@ static void red_set_cursor(RedWorker *worker, CursorItem *cursor) worker->cursor = cursor; } +#ifdef DEBUG_CURSORS +static int _cursor_count = 0; +#endif + static inline CursorItem *alloc_cursor_item(RedWorker *worker) { CursorItem *cursor; + if (!worker->free_cursor_items) { return NULL; } +#ifdef DEBUG_CURSORS + --_cursor_count; +#endif cursor = &worker->free_cursor_items->u.cursor_item; worker->free_cursor_items = worker->free_cursor_items->u.next; return cursor; @@ -4437,6 +4446,10 @@ static inline void free_cursor_item(RedWorker *worker, CursorItem *item) { ((_CursorItem *)item)->u.next = worker->free_cursor_items; worker->free_cursor_items = (_CursorItem *)item; +#ifdef DEBUG_CURSORS + ++_cursor_count; + ASSERT(_cursor_count <= NUM_CURSORS); +#endif } static void cursor_items_init(RedWorker *worker) -- 1.7.5.1 _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel