[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: C++ Plugins and virtual destructors.
From: |
Brendon Costa |
Subject: |
Re: C++ Plugins and virtual destructors. |
Date: |
Mon, 12 Nov 2007 09:51:26 +1100 |
User-agent: |
Thunderbird 2.0.0.6 (Windows/20070728) |
Bob Friesenhahn wrote:
> On Sun, 11 Nov 2007, Daniel Herring wrote:
>>
>> If the vtable is functioning for normal virtual functions, why
>> wouldn't it also work for a virtual destructor? Destructors are not
>> magic; they are merely functions that get called just before memory is
>> released. RTTI, a common culprit in dlopen issues, doesn't get
>> involved here.
>
> Right. A more important question to ask is if static
> constructors/destructors get properly executed, including the framework
> necessary to support C++ exceptions. The C++ exception issue is
> significant since usually the framework is set up by the original
> program and if the plugin does not properly mesh into it then there is a
> problem. There may also be a problem if the program is written and
> linked as a C program but the plugin is C++.
>
These are annoying issues that I am trying to deal with by avoidance :-)
* The program and plugins are both C++ source linked using the C++
compiler.
* I have avoided static constructors/destructors in the plugins. If i
need to use them which I haven't yet, i will use a singleton pattern
using a static pointer and creation of the singleton in the plugins
initialization routine.
* As for exceptions, I have defined all the methods for the plugins
interface as throw() so exceptions may occur inside the plguin but may
not propagate from the plugin to the application. I honestly dont know
if exceptions occurring only within the plugin may cause any problems?
May i ask what you mean by "properly mesh"? I was un-aware that C++
plugins which might use exceptions need to do anything in order to
make exceptions work (at least internally). It is something I have not
thought about.
Thanks,
Brendon.
- C++ Plugins and virtual destructors., Brendon Costa, 2007/11/08
- Re: C++ Plugins and virtual destructors., Brendon Costa, 2007/11/11
- Re: C++ Plugins and virtual destructors., Daniel Herring, 2007/11/12
- Re: C++ Plugins and virtual destructors., Ralf Wildenhues, 2007/11/12
- Re: C++ Plugins and virtual destructors., dherring, 2007/11/13
- Re: C++ Plugins and virtual destructors., Roumen Petrov, 2007/11/13