On Sep 3, 2005, at 3:12 PM, Kurt Kohler wrote:

Shouldn't the destructor in ValueImp be virtual? I'm not totally clear on this but I understand there can be problems if destructors aren't declared virtual in virtual base classes. ValueImp isn't actually virtual, but the derived classes are. Maybe that's how platform
dependencies are arising.

Well, there are never any instances of ValueImp created, because ValueImp is only a class that means "special pointer values or AllocatedValueImp".

In any case, the issue here is a difference in how virtual tables are handled between Windows Visual C++ and GCC on Unix/Mac OS X. And the fix is indeed to mark the ValueImp destructor virtual. I've done that.

The reason the AllocatedValueImp class exists at all is that if you have an AllocatedValueImp * then you know it's not a special pointer value and can dereference it without checking first.

And as mentioned in the blog, the names of these classes (ValueImp and AllocatedValueImp) are soon going to change to JSValue and JSCell.

    -- Darin

_______________________________________________
webkit-dev mailing list
[email protected]
http://www.opendarwin.org/mailman/listinfo/webkit-dev

Reply via email to