summaryrefslogtreecommitdiffstats
path: root/base/callback_internal.cc
Commit message (Collapse)AuthorAgeFilesLines
* Out of line CallbackBase's copy and assignment operators.dcheng2014-11-261-0/+3
| | | | | | | | | | This saved nearly 300KiB on a release build of Chrome. BUG=436357 Review URL: https://codereview.chromium.org/760513002 Cr-Commit-Position: refs/heads/master@{#305784}
* Make base::internal::CallbackBase::is_null inline.ricea2014-09-171-4/+0
| | | | | | | | | | | | This saves 11 bytes per call site on x64-clang and 12 byte per call site on ARM-gcc. BUG=410776 TEST=base_unittests Review URL: https://codereview.chromium.org/540883002 Cr-Commit-Position: refs/heads/master@{#295215}
* Update base/ to use scoped_refptr<T>::get() rather than implicit "operator T*"rsleevi@chromium.org2013-05-311-1/+1
| | | | | | | | | | | Linux fixes BUG=110610 TBR=darin Review URL: https://chromiumcodereview.appspot.com/16160015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203483 0039d316-1c4b-4281-b951-d872f2087c98
* Make Callback.Reset safe against deleting itself.mattm@chromium.org2012-06-131-1/+3
| | | | | | | | | | BUG=99159 TEST=CallbackTest.ResetRefCountedOwnerOfCallback Review URL: https://chromiumcodereview.appspot.com/10388060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142011 0039d316-1c4b-4281-b951-d872f2087c98
* Fix comment typo.bryeung@chromium.org2012-06-091-2/+2
| | | | | | | | | | TEST=none BUG=none Review URL: https://chromiumcodereview.appspot.com/10541081 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141342 0039d316-1c4b-4281-b951-d872f2087c98
* Retry 114494 - Remove BindStateHolder and have Bind() return a Callback<> ↵ajwong@chromium.org2011-12-201-6/+6
| | | | | | | | | | | | | | | object directly." This removes some complexity and also fixes a bug where if you call Bind() with the result of Bind(), the resulting Callback would only be valid during the first call. Ouch. Also makes the static type checking a bit more strict when assigning into a Callback<>. BUG=none TEST=new unittests Review URL: http://codereview.chromium.org/8915024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115045 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 114494 - Remove BindStateHolder and have Bind() return a Callback<> ↵sail@chromium.org2011-12-141-6/+6
| | | | | | | | | | | | | | | | | object directly. This removes some complexity and also fixes a bug where if you call Bind() with the result of Bind(), the resulting Callback would only be valid during the first call. Ouch. BUG=none TEST=new unittests Review URL: http://codereview.chromium.org/8738001 TBR=ajwong@chromium.org Review URL: http://codereview.chromium.org/8914022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114495 0039d316-1c4b-4281-b951-d872f2087c98
* Remove BindStateHolder and have Bind() return a Callback<> object directly.ajwong@chromium.org2011-12-141-6/+6
| | | | | | | | | | | | This removes some complexity and also fixes a bug where if you call Bind() with the result of Bind(), the resulting Callback would only be valid during the first call. Ouch. BUG=none TEST=new unittests Review URL: http://codereview.chromium.org/8738001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114494 0039d316-1c4b-4281-b951-d872f2087c98
* Callback API Change: Reimplement Bind(); support IgnoreResult, full ↵ajwong@chromium.org2011-11-211-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Callback: De-inline CallbackBase, and move to callback_helpers -> ↵ajwong@chromium.org2011-02-181-0/+36
| | | | | | | | | | | | | | | callback_internal.h We can re-inline later if it starts being an issue. BUG=none TEST=unit-tests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=75443 Review URL: http://codereview.chromium.org/6542026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75464 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Callback: De-inline CallbackBase, and move to callback_helpers -> ↵ajwong@chromium.org2011-02-181-33/+0
| | | | | | | | | | callback_internal.h" This reverts commit r75443. TBR=akalin git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75445 0039d316-1c4b-4281-b951-d872f2087c98
* Callback: De-inline CallbackBase, and move to callback_helpers -> ↵ajwong@chromium.org2011-02-181-0/+33
callback_internal.h We can re-inline later if it starts being an issue. BUG=none TEST=unit-tests Review URL: http://codereview.chromium.org/6542026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75443 0039d316-1c4b-4281-b951-d872f2087c98