From d72262dc01f67fb4193f1c22c420f4f7429295f7 Mon Sep 17 00:00:00 2001 From: "andrew@webrtc.org" Date: Thu, 9 May 2013 02:12:07 +0000 Subject: [PATCH] Fix compile errors in ViE with latest clang. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rolling to the latest Chromium picks up a new clang, which catches a fresh error: error: 'reinterpret_cast' to class 'webrtc::VideoEngineImpl *' from its base at non-zero offset 'webrtc::VideoEngine *' behaves differently from 'static_cast' [-Werror,-Wreinterpret-base-class] VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../webrtc/video_engine/vie_codec_impl.cc:36:31: note: use 'static_cast' to adjust the pointer correctly while downcasting VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); ^~~~~~~~~~~~~~~~ static_cast This was triggered by André's change here: https://code.google.com/p/webrtc/source/detail?r=3986 which made VideoEngineImpl a derived class of VideoEngine (good). Picked up one other error as well: error: implicit conversion from 'long' to 'int' changes value from 9223372036854775807 to -1 [-Werror,-Wconstant-conversion] AutoTestSleep(std::numeric_limits::max()); ~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This fixes the errors and is required before stable can be rolled in Chromium. TBR=mflodman,andresp Review URL: https://webrtc-codereview.appspot.com/1450004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3989 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../test/auto_test/source/vie_autotest_custom_call.cc | 2 +- webrtc/video_engine/vie_base_impl.cc | 2 +- webrtc/video_engine/vie_capture_impl.cc | 2 +- webrtc/video_engine/vie_codec_impl.cc | 2 +- webrtc/video_engine/vie_encryption_impl.cc | 2 +- webrtc/video_engine/vie_external_codec_impl.cc | 2 +- webrtc/video_engine/vie_image_process_impl.cc | 2 +- webrtc/video_engine/vie_impl.cc | 2 +- webrtc/video_engine/vie_network_impl.cc | 2 +- webrtc/video_engine/vie_render_impl.cc | 2 +- webrtc/video_engine/vie_rtp_rtcp_impl.cc | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/webrtc/video_engine/test/auto_test/source/vie_autotest_custom_call.cc b/webrtc/video_engine/test/auto_test/source/vie_autotest_custom_call.cc index 5e0642ad80..368fa89f0b 100644 --- a/webrtc/video_engine/test/auto_test/source/vie_autotest_custom_call.cc +++ b/webrtc/video_engine/test/auto_test/source/vie_autotest_custom_call.cc @@ -578,7 +578,7 @@ int ViEAutoTest::ViECustomCall() { "Keep the call running indefinitely\n") .WithDefault("Keep the call running indefinitely").Choose(); if (selection == 3) { - AutoTestSleep(std::numeric_limits::max()); + AutoTestSleep(std::numeric_limits::max()); } while (selection == 2) { diff --git a/webrtc/video_engine/vie_base_impl.cc b/webrtc/video_engine/vie_base_impl.cc index 82d9ab96fa..617ab40742 100644 --- a/webrtc/video_engine/vie_base_impl.cc +++ b/webrtc/video_engine/vie_base_impl.cc @@ -35,7 +35,7 @@ ViEBase* ViEBase::GetInterface(VideoEngine* video_engine) { if (!video_engine) { return NULL; } - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); ViEBaseImpl* vie_base_impl = vie_impl; (*vie_base_impl)++; // Increase ref count. diff --git a/webrtc/video_engine/vie_capture_impl.cc b/webrtc/video_engine/vie_capture_impl.cc index 6c17f14387..b5b6c024f9 100644 --- a/webrtc/video_engine/vie_capture_impl.cc +++ b/webrtc/video_engine/vie_capture_impl.cc @@ -28,7 +28,7 @@ ViECapture* ViECapture::GetInterface(VideoEngine* video_engine) { if (!video_engine) { return NULL; } - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); ViECaptureImpl* vie_capture_impl = vie_impl; // Increase ref count. (*vie_capture_impl)++; diff --git a/webrtc/video_engine/vie_codec_impl.cc b/webrtc/video_engine/vie_codec_impl.cc index 67ac417d8c..77b4d89079 100644 --- a/webrtc/video_engine/vie_codec_impl.cc +++ b/webrtc/video_engine/vie_codec_impl.cc @@ -33,7 +33,7 @@ ViECodec* ViECodec::GetInterface(VideoEngine* video_engine) { if (!video_engine) { return NULL; } - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); ViECodecImpl* vie_codec_impl = vie_impl; // Increase ref count. (*vie_codec_impl)++; diff --git a/webrtc/video_engine/vie_encryption_impl.cc b/webrtc/video_engine/vie_encryption_impl.cc index 8e14aa0956..93e7ed808f 100644 --- a/webrtc/video_engine/vie_encryption_impl.cc +++ b/webrtc/video_engine/vie_encryption_impl.cc @@ -25,7 +25,7 @@ ViEEncryption* ViEEncryption::GetInterface(VideoEngine* video_engine) { if (video_engine == NULL) { return NULL; } - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); ViEEncryptionImpl* vie_encryption_impl = vie_impl; // Increase ref count. (*vie_encryption_impl)++; diff --git a/webrtc/video_engine/vie_external_codec_impl.cc b/webrtc/video_engine/vie_external_codec_impl.cc index f7f8feeaba..4d0bebedd6 100644 --- a/webrtc/video_engine/vie_external_codec_impl.cc +++ b/webrtc/video_engine/vie_external_codec_impl.cc @@ -26,7 +26,7 @@ ViEExternalCodec* ViEExternalCodec::GetInterface(VideoEngine* video_engine) { if (video_engine == NULL) { return NULL; } - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); ViEExternalCodecImpl* vie_external_codec_impl = vie_impl; // Increase ref count. (*vie_external_codec_impl)++; diff --git a/webrtc/video_engine/vie_image_process_impl.cc b/webrtc/video_engine/vie_image_process_impl.cc index 79f574cb35..354a584ecd 100644 --- a/webrtc/video_engine/vie_image_process_impl.cc +++ b/webrtc/video_engine/vie_image_process_impl.cc @@ -28,7 +28,7 @@ ViEImageProcess* ViEImageProcess::GetInterface(VideoEngine* video_engine) { if (!video_engine) { return NULL; } - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); ViEImageProcessImpl* vie_image_process_impl = vie_impl; // Increase ref count. (*vie_image_process_impl)++; diff --git a/webrtc/video_engine/vie_impl.cc b/webrtc/video_engine/vie_impl.cc index d455a697f9..8a4067cda0 100644 --- a/webrtc/video_engine/vie_impl.cc +++ b/webrtc/video_engine/vie_impl.cc @@ -32,7 +32,7 @@ bool VideoEngine::Delete(VideoEngine*& video_engine) { } WEBRTC_TRACE(kTraceApiCall, kTraceVideo, kModuleId, "VideoEngine::Delete(vie = 0x%p)", video_engine); - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); // Check all reference counters. ViEBaseImpl* vie_base = vie_impl; diff --git a/webrtc/video_engine/vie_network_impl.cc b/webrtc/video_engine/vie_network_impl.cc index 9323879454..3eeab17dd4 100644 --- a/webrtc/video_engine/vie_network_impl.cc +++ b/webrtc/video_engine/vie_network_impl.cc @@ -31,7 +31,7 @@ ViENetwork* ViENetwork::GetInterface(VideoEngine* video_engine) { if (!video_engine) { return NULL; } - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); ViENetworkImpl* vie_networkImpl = vie_impl; // Increase ref count. (*vie_networkImpl)++; diff --git a/webrtc/video_engine/vie_render_impl.cc b/webrtc/video_engine/vie_render_impl.cc index 4b400cc8d4..260a3b8b79 100644 --- a/webrtc/video_engine/vie_render_impl.cc +++ b/webrtc/video_engine/vie_render_impl.cc @@ -33,7 +33,7 @@ ViERender* ViERender::GetInterface(VideoEngine* video_engine) { if (!video_engine) { return NULL; } - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); ViERenderImpl* vie_render_impl = vie_impl; // Increase ref count. (*vie_render_impl)++; diff --git a/webrtc/video_engine/vie_rtp_rtcp_impl.cc b/webrtc/video_engine/vie_rtp_rtcp_impl.cc index 4233894dff..5a4d52887c 100644 --- a/webrtc/video_engine/vie_rtp_rtcp_impl.cc +++ b/webrtc/video_engine/vie_rtp_rtcp_impl.cc @@ -79,7 +79,7 @@ ViERTP_RTCP* ViERTP_RTCP::GetInterface(VideoEngine* video_engine) { if (!video_engine) { return NULL; } - VideoEngineImpl* vie_impl = reinterpret_cast(video_engine); + VideoEngineImpl* vie_impl = static_cast(video_engine); ViERTP_RTCPImpl* vie_rtpimpl = vie_impl; // Increase ref count. (*vie_rtpimpl)++;