From 3387c15d67f0d3a6d3bf14f67f0e6bb03652c910 Mon Sep 17 00:00:00 2001 From: Bill Gianopoulos Date: Sat, 3 Apr 2010 16:21:53 -0400 Subject: [PATCH] Bug 555727: Stop MSVC from over-optimizing NS_DECLARE_FRAME_PROPERTY. r=dbaron --- layout/generic/nsIFrame.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/layout/generic/nsIFrame.h b/layout/generic/nsIFrame.h index 159ed71a0e3b..e60891fc69ce 100644 --- a/layout/generic/nsIFrame.h +++ b/layout/generic/nsIFrame.h @@ -824,11 +824,21 @@ public: delete static_cast(aPropertyValue); } +#ifdef _MSC_VER +// XXX Workaround MSVC issue by making the static FramePropertyDescriptor +// non-const. See bug 555727. +#define NS_DECLARE_FRAME_PROPERTY(prop, dtor) \ + static const FramePropertyDescriptor* prop() { \ + static FramePropertyDescriptor descriptor = { dtor }; \ + return &descriptor; \ + } +#else #define NS_DECLARE_FRAME_PROPERTY(prop, dtor) \ static const FramePropertyDescriptor* prop() { \ static const FramePropertyDescriptor descriptor = { dtor }; \ return &descriptor; \ } +#endif NS_DECLARE_FRAME_PROPERTY(IBSplitSpecialSibling, nsnull) NS_DECLARE_FRAME_PROPERTY(IBSplitSpecialPrevSibling, nsnull)