Commit Graph

16 Commits

Author SHA1 Message Date
36220ae24f Slap deprecation notices on Pass methods
There's no reason not to use std::move instead now that we can use the
C++11 standard library.

BUG=webrtc:5373

Review URL: https://codereview.webrtc.org/1531013003

Cr-Commit-Position: refs/heads/master@{#11225}
2016-01-12 15:24:27 +00:00
cea7c2f783 Replace manual casting to rvalue reference with calls to std::move
Review URL: https://codereview.webrtc.org/1570473002

Cr-Commit-Position: refs/heads/master@{#11163}
2016-01-07 13:52:09 +00:00
9390f84a4a Use std::nullptr_t instead of decltype(nullptr)
Review URL: https://codereview.webrtc.org/1531173003

Cr-Commit-Position: refs/heads/master@{#11068}
2015-12-17 14:20:32 +00:00
0eb15ed7b8 Don't call the Pass methods of rtc::Buffer, rtc::scoped_ptr, and rtc::ScopedVector
We can now use std::move instead!

This CL leaves the Pass methods in place; a follow-up CL will add deprecation annotations to them.

Review URL: https://codereview.webrtc.org/1460043002

Cr-Commit-Position: refs/heads/master@{#11064}
2015-12-17 11:04:24 +00:00
3c089d751e Add RTC_ prefix to contructormagic macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

* DISALLOW_ASSIGN -> RTC_DISALLOW_ASSIGN
* DISALLOW_COPY_AND_ASSIGN -> RTC_DISALLOW_COPY_AND_ASSIGN
* DISALLOW_IMPLICIT_CONSTRUCTORS -> RTC_DISALLOW_IMPLICIT_CONSTRUCTORS

Related CL: https://codereview.webrtc.org/1335923002/

BUG=chromium:468375
NOTRY=true

Review URL: https://codereview.webrtc.org/1345433002

Cr-Commit-Position: refs/heads/master@{#9953}
2015-09-16 12:37:52 +00:00
a8e285d193 Remove webrtc/base/move.h, and make types move-only manually
In days of yore, move.h contained complicated macros for approximating
move-only behavior in C++03. But since we live in the future now, and
can rely on C++11 features---including real move semantics!---it makes
more sense to just write the handful of required lines by hand in each
move-only class.

(We only live in the near future, though, not in some sci-fi
intergalactic civilization singularity type future, so we have to
define Pass() methods for these classes since we're not allowed to use
std::move().)

R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/45099004

Cr-Commit-Position: refs/heads/master@{#9060}
2015-04-22 17:43:59 +00:00
9478437fde rtc::Buffer improvements
1. Constructors, SetData(), and AppendData() now accept uint8_t*,
     int8_t*, and char*. Previously, they accepted void*, meaning that
     any kind of pointer was accepted. I think requiring an explicit
     cast in cases where the input array isn't already of a byte-sized
     type is a better compromise between convenience and safety.

  2. data() can now return a uint8_t* instead of a char*, which seems
     more appropriate for a byte array, and is harder to mix up with
     zero-terminated C strings. data<int8_t>() is also available so
     that callers that want that type instead won't have to cast, as
     is data<char>() (which remains the default until all existing
     callers have been fixed).

  3. Constructors, SetData(), and AppendData() now accept arrays
     natively, not just decayed to pointers. The advantage of this is
     that callers don't have to pass the size separately.

  4. There are new constructors that allow setting size and capacity
     without initializing the array. Previously, this had to be done
     separately after construction.

  5. Instead of TransferTo(), Buffer now supports swap(), and move
     construction and assignment, and has a Pass() method that works
     just like std::move(). (The Pass method is modeled after
     scoped_ptr::Pass().)

R=jmarusic@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42989004

Cr-Commit-Position: refs/heads/master@{#9033}
2015-04-20 12:03:00 +00:00
11426dc719 Don't rely on webrtc/base/scoped_ptr.h to include stuff for you
webrtc/base/scoped_ptr.h doesn't need to include webrtc/base/common.h
anymore, but a couple of its users were relying on it to pull in other
things for them. Fix that, and remove the now really unnecessary
webrtc/base/common.h include.

R=andrew@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37169004

Cr-Commit-Position: refs/heads/master@{#8333}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8333 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 14:31:19 +00:00
73ca1945ec Update base/scoped_ptr.h from system_wrappers/interface/scoped_ptr.h
The latter file was more up-to-date. The files are now identical
with the following exceptions:

  * The namespace used (rtc vs. webrtc).

  * The name of the include guard.

  * base/scoped_ptr.h still has two extra methods, accept() and use().

  * base/scoped_ptr.h still includes webrtc/base/common.h even though
    it doesn't need it itself, since several .cc files expect to get
    it for free by incuding base/scoped_ptr.h. This is of course bad
    manners, and the "unused" include will be removed in a future CL.

A later CL will remove system_wrappers/interface/scoped_ptr.h.

R=andrew@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=8147
And reverted again, because out-of-tree code using this file was defining nullptr to 0: https://code.google.com/p/webrtc/source/detail?r=8149

Review URL: https://webrtc-codereview.appspot.com/36919004

Cr-Commit-Position: refs/heads/master@{#8196}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8196 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-29 09:13:17 +00:00
6f200b5b87 Temporarily revert r8147 ("Update base/scoped_ptr.h from system_wrappers/interface/scoped_ptr.h")
Some out-of-tree code that uses base/scoped_ptr.h is defining nullptr
to 0, which causes an obvious compilation error and perhaps other
subtle problems. I'm hoping to get that sorted out and re-land this CL
soon.

TBR=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34839004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8149 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 13:03:32 +00:00
19eb4e4b86 Update base/scoped_ptr.h from system_wrappers/interface/scoped_ptr.h
The latter file was more up-to-date. The files are now identical
with the following exceptions:

  * The namespace used (rtc vs. webrtc).

  * The name of the include guard.

  * base/scoped_ptr.h still has two extra methods, accept() and use().

  * base/scoped_ptr.h still includes webrtc/base/common.h even though
    it doesn't need it itself, since several .cc files expect to get
    it for free by incuding base/scoped_ptr.h. This is of course bad
    manners, and the "unused" include will be removed in a future CL.

A later CL will remove system_wrappers/interface/scoped_ptr.h.

R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36919004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8147 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 08:57:57 +00:00
2ebfac5649 Remove COMPILE_ASSERT and use static_assert everywhere
COMPILE_ASSERT is no longer needed now that we have C++11's
static_assert.

R=aluebs@webrtc.org, andrew@webrtc.org, hellner@chromium.org, henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39469004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8058 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 10:51:54 +00:00
aa21f2765b Unify the two copies of move.h
This patch basically deletes webrtc/base/move.h (which is the more
outdated copy) and moves webrtc/system_wrappers/source/move.h to take
its place.

R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/35549004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7963 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-19 14:35:57 +00:00
f048872e91 Adds a modified copy of talk/base to webrtc/base. It is the first step in
migrating talk/base to webrtc/base.

BUG=N/A
R=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/17479005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6129 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-13 18:00:26 +00:00
e9a604accd Revert 6107 "Adds a modified copy of talk/base to webrtc/base. I..."
This breaks Chromium FYI builds and prevent roll of webrtc/libjingle to Chrome.

http://chromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Win%20Builder/builds/457


> Adds a modified copy of talk/base to webrtc/base. It is the first step in migrating talk/base to webrtc/base.
> 
> BUG=N/A
> R=andrew@webrtc.org, wu@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/12199004

TBR=henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14479004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6116 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-13 08:15:48 +00:00
2c7d1b39b9 Adds a modified copy of talk/base to webrtc/base. It is the first step in migrating talk/base to webrtc/base.
BUG=N/A
R=andrew@webrtc.org, wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/12199004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6107 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-12 18:03:09 +00:00