Dmitry Timoshkov <dmi...@baikal.ru> writes: > Alexandre Julliard <julli...@winehq.org> wrote: > >> >> > --- a/server/handle.c >> >> > +++ b/server/handle.c >> >> > @@ -165,7 +165,6 @@ static void handle_table_destroy( struct object >> >> > *obj ) >> >> > for (i = 0, entry = table->entries; i <= table->last; i++, entry++) >> >> > { >> >> > struct object *obj = entry->ptr; >> >> > - entry->ptr = NULL; >> >> > if (obj) release_object( obj ); >> >> >> >> You can't do that, the object can't be accessed after being released. >> > >> > Being released doesn't mean destroyed. An object gets destroyed only if its >> > refcount drops to 0. >> >> Obviously, but in general the handle will be the only reference. > > Then I don't understand what you mean regarding the code snippet above.
After release_object, the object will have been freed if this was the last reference. You can't keep a pointer to it. -- Alexandre Julliard julli...@winehq.org