widgets: pass cleanup data as arrays of void pointers
widgets: free the void pointer array as well