Francois Gouget a écrit :
On Thu, 18 Dec 2008, Christian Costa wrote: [...]
For 1) Why not adding a keyword to mark these functions. Something like WINAPI which resolve to nothing but that can be tracked by your script.
We could potentially go this way if I merge these checks with winapi_check one day. But for now I prefer not to touch Wine's code. Besides there's really only about a handful of these.
I would add another item for more object oriented stuff. Some default implentations can be written but not always used. This is sort of templates. This is used in quartz for example.
Do you have a specific example of this?
If you have a class A (with methods implemented in file 1) that inherits from another class B (methods in file B). The class A may overrides some methods of B which may become unused if B is never instanciated and B methods not reused. They wil be tracked by your script then. We could make these functions static or worst remove then but from object programming pov is not good. Implement objects or interfaces in C is a little messy. Haven't something more consistent would be more convenient I think. That would we good if we could treat a class as a whole rather that just independants C functions.
That said, in quartz only pins use that currently (maybe more base classes could be written like what's done in Direct Show base classes (through strmbase.lib)). And if we move that code to a separate static lib (strmbase like in DirectShow), functions will be exported and the problem will disappear. Maybe it isn't worth the trouble.
Christian