| Index: base/bind.h.pump
|
| diff --git a/base/bind.h.pump b/base/bind.h.pump
|
| index 11b46670fcb11b788250f8abf49bb2f2bbf0d71f..9d4c5eef3bf4f5529393fc46e9f4f7336cbc07b4 100644
|
| --- a/base/bind.h.pump
|
| +++ b/base/bind.h.pump
|
| @@ -5,7 +5,25 @@ $$
|
| $$ http://code.google.com/p/googletest/wiki/PumpManual
|
| $$
|
|
|
| -$var MAX_ARITY = 6
|
| +$$
|
| +$$ MAX_ARITY controls the number of arguments that Bind() supports.
|
| +$$ The amount of code, and more importantly, the number of template types
|
| +$$ generated by pump grows at O(MAX_ARITY^2).
|
| +$$
|
| +$$ We tried going to 11 and found it imposed an extra 10 penalty on windows
|
| +$$ cycle times compared to our original baseline of 6.
|
| +$$
|
| +$$ Currently 7 is chosen as a compromise between supporting a convenient
|
| +$$ number of arguments and keeping compile times low. At 7, we have 115
|
| +$$ templates being generated by pump.
|
| +$$
|
| +$$ Be careful when adjusting this number. If people find a need to bind
|
| +$$ a larger number of arguments, consider refactoring the function to use
|
| +$$ a param struct instead of raising the MAX_ARITY.
|
| +$$
|
| +$$ See http://crbug.com/98542 for more context.
|
| +$$
|
| +$var MAX_ARITY = 7
|
|
|
| // Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
|
|