diff options
Diffstat (limited to 'layout/generic/nsIFrame.h')
-rw-r--r-- | layout/generic/nsIFrame.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/layout/generic/nsIFrame.h b/layout/generic/nsIFrame.h index be439dbdc2..1c5dbbe9ac 100644 --- a/layout/generic/nsIFrame.h +++ b/layout/generic/nsIFrame.h @@ -12,7 +12,23 @@ #error This header/class should only be used within Mozilla code. It should not be used by extensions. #endif -#define MAX_REFLOW_DEPTH 200 +#if (defined(XP_WIN) && !defined(HAVE_64BIT_BUILD)) +// Using the same number as Blink's depth limit for 32-bit Windows for consistency. +// Note: This depth of 513 doesn't fit in the default stack of 1 MB, but it +// depth fits when the default is grown by a mere 192 KB. +// +// 32-bit Windows has a different limit compared to 64-bit desktop, because the +// default stack size affects all threads and consumes address space. +// +// Ideally, we'd get rid of this smaller limit and make 32-bit Windows +// capable of working with the Linux/Mac/Win64 number below. +#define MAX_REFLOW_DEPTH 513 +#else +// Blink's depth limit from its HTML parser times two. This just about fits +// the system default runtime stack limit of 8 MB on 64-bit Mac and Linux with +// display: table-cell. +#define MAX_REFLOW_DEPTH 1026 +#endif /* nsIFrame is in the process of being deCOMtaminated, i.e., this file is eventually going to be eliminated, and all callers will use nsFrame instead. At the moment |