From: Dennis S. <sy...@yo...> - 2004-10-19 19:56:58
|
On Tue, 2004-10-19 at 22:02 +0300, Vitaly V. Bursov wrote: > > I'm not sure about the bin, I really need to redo it from scratch.... > I mean > > int visual_bin_destroy (VisBin *bin) > { > visual_log_return_val_if_fail (bin != NULL, -1); > > if ((bin->actor != NULL) /*-->*/ && (bin->managed) /*<--*/ ) > visual_actor_destroy (bin->actor); > ... Aah that way, well, yeah, maybe it's better to always destroy childs... I'm not going to fix this right now, but do that when we do the rewrite. > > About visual_plugin_unload, would it be better to set an error, and have > > a way to force it ? > No, of course not! if you unload library that is used everything will crash. > > Well, here's an example that will not work. > > plug1 = visual_plugin_load(ref); > plug2 = visual_plugin_load(ref); Well, I don't have a crash related to this... I can load 2 plugins and unload them both, my dlopen gives a fake handle for the second library, and REALLY closes the library when all handles are being dlclosed... > visual_plugin_unload(plug1); > visual_plugin_unload(plug2); // <-- Hard Crash here. > > because it dlclose()'s library. :( > > I do not see a quick&nice way to fix this but write a > dlopen() manager with static struct array with > handles and refcounters. > > This thing should be fixed. > > > What others bugs do you have? I might be able to help you > > fixing those. > OK, just as I find some. :) Alright, Keep me updated, I might be able to help :) Cheers, Dennis |