From 87ebf987248999f80c5e324ea3bd2af487e26071 Mon Sep 17 00:00:00 2001 From: "iposva@chromium.org" Date: Wed, 13 May 2009 05:46:51 +0000 Subject: [PATCH] Split the RUNTIME_FUNCTION_LIST_ALWAYS macro into two as this macro is very large for Visual Studio's intellisense operation thus causing it to crash. Fixes bug http://code.google.com/p/chromium/issues/detail?id=11837 Bug=11837 Patch submitted by: ananta@chromium.org Review URL: http://codereview.chromium.org/115287 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/runtime.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/runtime.h b/src/runtime.h index 2041295151..a91d0ecb6f 100644 --- a/src/runtime.h +++ b/src/runtime.h @@ -37,7 +37,10 @@ namespace v8 { namespace internal { // release and debug mode. // This macro should only be used by the macro RUNTIME_FUNCTION_LIST. -#define RUNTIME_FUNCTION_LIST_ALWAYS(F) \ +// WARNING: RUNTIME_FUNCTION_LIST_ALWAYS_* is a very large macro that caused +// MSVC Intellisense to crash. It was broken into two macros to work around +// this problem. Please avoid large recursive macros whenever possible. +#define RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ /* Property access */ \ F(GetProperty, 2) \ F(KeyedGetProperty, 2) \ @@ -153,8 +156,9 @@ namespace v8 { namespace internal { F(NumberToRadixString, 2) \ F(NumberToFixed, 2) \ F(NumberToExponential, 2) \ - F(NumberToPrecision, 2) \ - \ + F(NumberToPrecision, 2) + +#define RUNTIME_FUNCTION_LIST_ALWAYS_2(F) \ /* Reflection */ \ F(FunctionSetInstanceClassName, 2) \ F(FunctionSetLength, 2) \ @@ -320,7 +324,8 @@ namespace v8 { namespace internal { // via a native call by name (from within JS code). #define RUNTIME_FUNCTION_LIST(F) \ - RUNTIME_FUNCTION_LIST_ALWAYS(F) \ + RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ + RUNTIME_FUNCTION_LIST_ALWAYS_2(F) \ RUNTIME_FUNCTION_LIST_DEBUG(F) \ RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F)