Backing out bug 107291 due to OS/2 having a crappy compiler.

This commit is contained in:
jkeiser%netscape.com 2002-10-08 09:30:40 +00:00
Родитель 261f517eb6
Коммит 35c5cded43
3 изменённых файлов: 13 добавлений и 2 удалений

Просмотреть файл

@ -51,6 +51,7 @@
//#define DO_NEW_REFLOW
#endif
#include "nsIDOMMouseListener.h"
#include "nsAreaFrame.h"
#include "nsIFormControlFrame.h"
#include "nsIComboboxControlFrame.h"
@ -64,7 +65,6 @@
#include "nsIScrollableViewProvider.h"
#include "nsIStatefulFrame.h"
class nsIDOMMouseListener;
class nsIView;
class nsStyleContext;
class nsIHTMLContent;

Просмотреть файл

@ -51,6 +51,7 @@
//#define DO_NEW_REFLOW
#endif
#include "nsIDOMMouseListener.h"
#include "nsAreaFrame.h"
#include "nsIFormControlFrame.h"
#include "nsIComboboxControlFrame.h"
@ -64,7 +65,6 @@
#include "nsIScrollableViewProvider.h"
#include "nsIStatefulFrame.h"
class nsIDOMMouseListener;
class nsIView;
class nsStyleContext;
class nsIHTMLContent;

Просмотреть файл

@ -444,6 +444,17 @@ class nsCOMPtr
: private nsCOMPtr_base
#endif
{
enum { _force_even_compliant_compilers_to_fail_ = sizeof(T) };
/*
The declaration above exists specifically to make |nsCOMPtr<T>| _not_ compile with only
a forward declaration of |T|. This should prevent Windows and Mac engineers from
breaking Solaris and other compilers that naturally have this behavior. Thank
<law@netscape.com> for inventing this specific trick.
Of course, if you're using |nsCOMPtr| outside the scope of wanting to compile on
Solaris and old GCC, you probably want to remove the enum so you can exploit forward
declarations.
*/
#ifdef NSCAP_FEATURE_DEBUG_PTR_TYPES
private: