Following up to myself:
It is also not possible to compile current filter.cpp with vanilla 2.95.x
without optimizations (just try it with -O0, relying on successful
optimization (especially when it is about inlining a 10K long function)
has always been considered a bad idea).
I actually have a patch which would make this to work for 2.96-RH and
2.95.x, unfortunately it penalizes existing code (unless it can break the
ABI) in compilation time, link time and, if the polymorphic class' exporting
unit would be put in one shared library, while the use of the inline method
in some other DSO/program, also in space.
The patch basically needs to keep the existing 2.95.x/2.96 ABI in that
inline methods of polymorphic classes are always emitted within the unit
which implements first virtual non-inline non-pure method, but unlike the
previous behaviour also emits inline methods in other objects if they are
referenced there and not all copies are successfully inlined.
For comparison, GCC_3.0 ABI changes these rules and inline methods are
emitted in all objects where they are referenced and not successfully
inlined in all cases, but does not mandate emitting them in the unit which
implements first virtual non-inline non-pure method.
All in all, I'd find it preferrable to remove the inline keywords from
avifile than being forced to include this patch.
Jakub
_______________________________________________
Avifile mailing list
[EMAIL PROTECTED]
http://prak.org/mailman/listinfo/avifile