Revert of Consolidate constructormagic macros with Chromium version and remove Chromium override. (patchset #4 id:60001 of https://codereview.webrtc.org/1316363005/ )
Reason for revert:
Had to revert since FYI bots stopped compiling. Example failure:
[94/9470] CXX obj\third_party\webrtc\modules\video_processing\main\source\video_processing_sse2.content_analysis_sse2.obj
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\modules\video_coding\codecs\h264\webrtc_h264.h264.obj.rsp /c ..\..\third_party\webrtc\modules\video_coding\codecs\h264\h264.cc /Foobj\third_party\webrtc\modules\video_coding\codecs\h264\webrtc_h264.h264.obj /Fdobj\third_party\webrtc\modules\webrtc_h264.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\base\rtc_base_approved.bitbuffer.obj.rsp /c ..\..\third_party\webrtc\base\bitbuffer.cc /Foobj\third_party\webrtc\base\rtc_base_approved.bitbuffer.obj /Fdobj\third_party\webrtc\base\rtc_base_approved.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\modules\audio_processing\logging\audio_processing.aec_logging_file_handling.obj.rsp /c ..\..\third_party\webrtc\modules\audio_processing\logging\aec_logging_file_handling.cc /Foobj\third_party\webrtc\modules\audio_processing\logging\audio_processing.aec_logging_file_handling.obj /Fdobj\third_party\webrtc\modules\audio_processing.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\modules\audio_processing\beamformer\audio_processing.nonlinear_beamformer.obj.rsp /c ..\..\third_party\webrtc\modules\audio_processing\beamformer\nonlinear_beamformer.cc /Foobj\third_party\webrtc\modules\audio_processing\beamformer\audio_processing.nonlinear_beamformer.obj /Fdobj\third_party\webrtc\modules\audio_processing.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
Original issue's description:
> Consolidate constructormagic macros with Chromium version and remove Chromium override.
>
> Part of work removing dependency on Chromium's base.
>
> Only adds "= delete". From https://codereview.chromium.org/1151443003 :
> "This will guarantee the error to be at compile time, and not rely on the call visibility (private)."
>
> In consequence of that change, fixed an illegal copy and removed a bunch of unused variables.
>
> BUG=chromium:468375 (in particular comment #37)
> NOTRY=true
>
> Committed: https://crrev.com/0de8ff488d92e0bc6b7b65662898ff5e955cda93
> Cr-Commit-Position: refs/heads/master@{#9913}
TBR=andrew@webrtc.org,henrikg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:468375 (in particular comment #37)
Review URL: https://codereview.webrtc.org/1330283002
Cr-Commit-Position: refs/heads/master@{#9914}
diff --git a/talk/app/webrtc/videosource.cc b/talk/app/webrtc/videosource.cc
index 4551e5e..bb27b10 100644
--- a/talk/app/webrtc/videosource.cc
+++ b/talk/app/webrtc/videosource.cc
@@ -318,6 +318,8 @@
private:
cricket::VideoCapturer* capturer_;
+ int width_;
+ int height_;
DISALLOW_COPY_AND_ASSIGN(FrameInputWrapper);
};
diff --git a/webrtc/base/constructormagic.h b/webrtc/base/constructormagic.h
index 6971580..6b1244f 100644
--- a/webrtc/base/constructormagic.h
+++ b/webrtc/base/constructormagic.h
@@ -14,27 +14,27 @@
// Undefine macros first, just in case. Some third-party includes have their own
// version.
-// Put this in the declarations for a class to be unassignable.
#undef DISALLOW_ASSIGN
#define DISALLOW_ASSIGN(TypeName) \
- void operator=(const TypeName&) = delete
+ void operator=(const TypeName&)
-// A macro to disallow the copy constructor and operator= functions. This should
-// be used in the declarations for a class.
+// A macro to disallow the evil copy constructor and operator= functions
+// This should be used in the private: declarations for a class.
#undef DISALLOW_COPY_AND_ASSIGN
-#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
- TypeName(const TypeName&) = delete; \
+#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
+ TypeName(const TypeName&); \
DISALLOW_ASSIGN(TypeName)
-// A macro to disallow all the implicit constructors, namely the default
-// constructor, copy constructor and operator= functions.
+// A macro to disallow all the implicit constructors, namely the
+// default constructor, copy constructor and operator= functions.
//
-// This should be used in the declarations for a class that wants to prevent
-// anyone from instantiating it. This is especially useful for classes
-// containing only static methods.
+// This should be used in the private: declarations for a class
+// that wants to prevent anyone from instantiating it. This is
+// especially useful for classes containing only static methods.
#undef DISALLOW_IMPLICIT_CONSTRUCTORS
#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
- TypeName() = delete; \
+ TypeName(); \
DISALLOW_COPY_AND_ASSIGN(TypeName)
+
#endif // WEBRTC_BASE_CONSTRUCTORMAGIC_H_
diff --git a/webrtc/base/logging.cc b/webrtc/base/logging.cc
index e28b2e1..e2ee115 100644
--- a/webrtc/base/logging.cc
+++ b/webrtc/base/logging.cc
@@ -195,7 +195,8 @@
}
uint32 delay = TimeSince(before);
if (delay >= warn_slow_logs_delay_) {
- rtc::LogMessage slow_log_warning(__FILE__, __LINE__, LS_WARNING);
+ LogMessage slow_log_warning =
+ rtc::LogMessage(__FILE__, __LINE__, LS_WARNING);
// If our warning is slow, we don't want to warn about it, because
// that would lead to inifinite recursion. So, give a really big
// number for the delay threshold.
diff --git a/webrtc/base/natserver.h b/webrtc/base/natserver.h
index 9c883f9..e987021 100644
--- a/webrtc/base/natserver.h
+++ b/webrtc/base/natserver.h
@@ -109,6 +109,7 @@
bool ShouldFilterOut(TransEntry* entry, const SocketAddress& ext_addr);
NAT* nat_;
+ SocketFactory* internal_;
SocketFactory* external_;
SocketAddress external_ip_;
AsyncUDPSocket* udp_server_socket_;
diff --git a/webrtc/base/virtualsocketserver.cc b/webrtc/base/virtualsocketserver.cc
index a9ca98b..c2f0e01 100644
--- a/webrtc/base/virtualsocketserver.cc
+++ b/webrtc/base/virtualsocketserver.cc
@@ -98,6 +98,7 @@
int type,
bool async)
: server_(server),
+ family_(family),
type_(type),
async_(async),
state_(CS_CLOSED),
diff --git a/webrtc/base/virtualsocketserver.h b/webrtc/base/virtualsocketserver.h
index 065d843..c708bb4 100644
--- a/webrtc/base/virtualsocketserver.h
+++ b/webrtc/base/virtualsocketserver.h
@@ -306,6 +306,7 @@
void SetLocalAddress(const SocketAddress& addr);
VirtualSocketServer* server_;
+ int family_;
int type_;
bool async_;
ConnState state_;
diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc
index d958d6c..a84d6f0 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc
+++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc
@@ -719,7 +719,8 @@
next_frame_ms_(first_frame_offset_ms),
next_frame_rand_ms_(0),
now_ms_(0),
- prototype_header_() {
+ prototype_header_(),
+ start_plotting_ms_(first_frame_offset_ms) {
memset(&prototype_header_, 0, sizeof(prototype_header_));
prototype_header_.ssrc = ssrc;
prototype_header_.sequenceNumber = 0xf000u;
diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h
index cf4a649..ceaa637 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h
+++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h
@@ -370,6 +370,7 @@
uint32_t capacity_kbps_;
int64_t last_send_time_us_;
rtc::scoped_ptr<DelayCapHelper> delay_cap_helper_;
+ int64_t max_delay_us_;
DISALLOW_IMPLICIT_CONSTRUCTORS(ChokeFilter);
};
@@ -446,6 +447,8 @@
int64_t next_frame_rand_ms_;
int64_t now_ms_;
RTPHeader prototype_header_;
+ int64_t start_plotting_ms_;
+ uint32_t previous_bitrate_bps_;
DISALLOW_IMPLICIT_CONSTRUCTORS(VideoSource);
};
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_format_h264.cc b/webrtc/modules/rtp_rtcp/source/rtp_format_h264.cc
index aeef443..d8063b0 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_format_h264.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_format_h264.cc
@@ -153,7 +153,8 @@
size_t max_payload_len)
: payload_data_(NULL),
payload_size_(0),
- max_payload_len_(max_payload_len) {
+ max_payload_len_(max_payload_len),
+ frame_type_(frame_type) {
}
RtpPacketizerH264::~RtpPacketizerH264() {
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h b/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h
index a6e1424..4e92895 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h
@@ -84,6 +84,7 @@
const size_t max_payload_len_;
RTPFragmentationHeader fragmentation_;
PacketQueue packets_;
+ FrameType frame_type_;
DISALLOW_COPY_AND_ASSIGN(RtpPacketizerH264);
};
diff --git a/webrtc/modules/video_coding/main/test/test_util.h b/webrtc/modules/video_coding/main/test/test_util.h
index fd11db6..11fb6d4 100644
--- a/webrtc/modules/video_coding/main/test/test_util.h
+++ b/webrtc/modules/video_coding/main/test/test_util.h
@@ -61,6 +61,7 @@
private:
std::string out_filename_;
+ uint32_t ssrc_;
FILE* out_file_;
FILE* timing_file_;
int width_;
diff --git a/webrtc/overrides/webrtc/base/constructormagic.h b/webrtc/overrides/webrtc/base/constructormagic.h
new file mode 100644
index 0000000..91e2748
--- /dev/null
+++ b/webrtc/overrides/webrtc/base/constructormagic.h
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2009 The WebRTC Project Authors. All rights reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+// This file overrides the inclusion of webrtc/base/constructormagic.h
+// We do this because constructor magic defines DISALLOW_COPY_AND_ASSIGN,
+// but we want to use the version from Chromium.
+
+#ifndef OVERRIDES_WEBRTC_BASE_CONSTRUCTORMAGIC_H__
+#define OVERRIDES_WEBRTC_BASE_CONSTRUCTORMAGIC_H__
+
+#include "base/macros.h"
+
+#endif // OVERRIDES_WEBRTC_BASE_CONSTRUCTORMAGIC_H__