summaryrefslogtreecommitdiffstats
path: root/base/bind_internal_win.h.pump
Commit message (Collapse)AuthorAgeFilesLines
* Remove the rest of #pragma once in one big CL.ajwong@chromium.org2012-07-111-1/+0
| | | | | | | | | For context see this thread: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/RMcVNGjB4II TBR=thakis,pkasting,jam git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146163 0039d316-1c4b-4281-b951-d872f2087c98
* Increase Bind/Callback Arity from 6 -> 7.ajwong@chromium.org2011-11-281-1/+2
| | | | | | | | | | | | | | A few functions need this and the expected compile-speed impact is low. We should be careful when raising this number higher. If you're binding a function that has more parameters than this supports, consider refactoring your API to use a parameter struct or something. Template equation: (n^2 + 26n) / 2 Template growth: 96 -> 116 types. BUG=98542 TEST=try bots Review URL: http://codereview.chromium.org/8728010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111788 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Increase Bind/Callback Arity from 6 -> 11: These go to eleven."ajwong@chromium.org2011-11-241-1/+1
| | | | | | | | | | | | | | | This reverts r111410. Doing this increased Win builder cycle time by about 10s on incrementals (eyeballed from stats dashboard). Alas, 11 proved to be too high for us. BUG=98542 TEST=none Review URL: http://codereview.chromium.org/8682030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111463 0039d316-1c4b-4281-b951-d872f2087c98
* Increase Bind/Callback Arity from 6 -> 11: These go to eleven.ajwong@chromium.org2011-11-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is only for a build time stress test only. I will revert back to 6 after getting the data. 11 allows for binding of 11 arguments to a function, and 10 arguments to a method. 10 seemed like a nice round number to try (MSVC's tr1::bind() only supports 10). Template Growth rate (n == arity): bind.h: n bind_internal.h: (n^2 + 20n)/2 bind_internal_win.h: n callback.h: n Template growth equation: (n^2 + 26n) / 2 Template growth: 96 -> 203 types BUG=98542 TEST=try bots. Then we get to watch the bot cycle times. Review URL: http://codereview.chromium.org/8682015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111410 0039d316-1c4b-4281-b951-d872f2087c98
* Callback API Change: Reimplement Bind(); support IgnoreResult, full ↵ajwong@chromium.org2011-11-211-29/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | currying, and use less types. The main API change IgnoreResult() and fully currying. See unittest for what the new API looks like. The rest of the changes are done to support that. Previously, IgnoreReturn could not be used with WeakPtr<> Bind()s as it was applied after the fact to the Callback object. Now, IgnoreResult() wraps the function like Unretained(). As an incidental benefit, the new implementation gave us fully currying for free. Also, the new implementation scales better when supporting higher arities of functions. The new type growth is: (n^2 + 20n) / 2 as opposed to (3n^2 + 17n) / 2 where n == arity. For n = 6 and n=10, the new implementation has 81 and 155 templates respectively. The old implementation had 105 and 235 templates respectively. BUG=35233,98919,98542 TEST=existing unittests Review URL: http://codereview.chromium.org/8483003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110975 0039d316-1c4b-4281-b951-d872f2087c98
* Support binding WeakPtr<> to methods with void return types.ajwong@chromium.org2011-05-161-0/+4
| | | | | | | | | | | | | | | This should give functionality similar to ScopedRunnableMethodFactory. Note that binding a WeakPtr only make sense with methods with void return types. If the return type is not void, then it is unclear what the function should return when the pointer is invalidated. This code adds a compile time assert to check the return type. BUG=35223 TEST=unittests Review URL: http://codereview.chromium.org/7015064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85549 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for base::Closure in the MessageLoop, and reimplement the whole ↵ajwong@chromium.org2011-04-201-0/+7
| | | | | | | | | | | sucker on top of base::Closure. After this, all Task objects that are posted will be wrapped in a closure prior to dispatch. BUG=35223 TEST=unittests. Review URL: http://codereview.chromium.org/6463013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82300 0039d316-1c4b-4281-b951-d872f2087c98
* Callback support for unbound reference and array arguments.ajwong@chromium.org2011-03-241-0/+20
| | | | | | | | | | | Because the callback object uses const An& for the type of the Run() function in argument forwarding, the code breaks for An=T& or An=T[]. This CL adds in code to modify the parameter type to remove duplicate references, and other fun. BUG=35223 TEST=new unittests Review URL: http://codereview.chromium.org/6718021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79239 0039d316-1c4b-4281-b951-d872f2087c98
* Callback support for __fastcall and __stdcall functions.ajwong@chromium.org2011-02-271-0/+52
Create FunctionTraits specializations that can unwrap function pointers that are delcared with __fastcall and __stdcall on windows. Only include these in the Windows build. BUG=35223 TEST=new unittests Review URL: http://codereview.chromium.org/6561004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76174 0039d316-1c4b-4281-b951-d872f2087c98