summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortommi@webrtc.org <tommi@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2013-02-15 15:07:32 +0000
committertommi@webrtc.org <tommi@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2013-02-15 15:07:32 +0000
commitb9e5a3d589349ee55e41cb54eca4ec822018f5c5 (patch)
treefafc67d55c5277257678501ef63cd23e1ae14ec4
parent4e91d4a457f13f2e4f1647e8b5277b08972b854f (diff)
downloadwebrtc-b9e5a3d589349ee55e41cb54eca4ec822018f5c5.tar.gz
Make VoiceEngineImpl inherit from VoiceEngine.
This associates the two types instead of incorrectly reinterpret casting VoiceEngineImpl* to VoiceEngine* (since these types were previously unrelated). Please see more details in the bug for how this is currently causing problems with security tools. BUG=38612 Review URL: https://webrtc-codereview.appspot.com/1099013 git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@3520 4adac7df-926f-26a2-2b94-8c16560cd09d
-rw-r--r--voice_engine/include/voe_base.h2
-rw-r--r--voice_engine/voe_audio_processing_impl.cc2
-rw-r--r--voice_engine/voe_base_impl.cc2
-rw-r--r--voice_engine/voe_call_report_impl.cc2
-rw-r--r--voice_engine/voe_codec_impl.cc2
-rw-r--r--voice_engine/voe_dtmf_impl.cc2
-rw-r--r--voice_engine/voe_encryption_impl.cc2
-rw-r--r--voice_engine/voe_external_media_impl.cc2
-rw-r--r--voice_engine/voe_file_impl.cc2
-rw-r--r--voice_engine/voe_hardware_impl.cc2
-rw-r--r--voice_engine/voe_neteq_stats_impl.cc2
-rw-r--r--voice_engine/voe_network_impl.cc2
-rw-r--r--voice_engine/voe_rtp_rtcp_impl.cc2
-rw-r--r--voice_engine/voe_video_sync_impl.cc2
-rw-r--r--voice_engine/voe_volume_control_impl.cc2
-rw-r--r--voice_engine/voice_engine_impl.cc7
-rw-r--r--voice_engine/voice_engine_impl.h1
17 files changed, 19 insertions, 19 deletions
diff --git a/voice_engine/include/voe_base.h b/voice_engine/include/voe_base.h
index 28f465e6..b26f73a9 100644
--- a/voice_engine/include/voe_base.h
+++ b/voice_engine/include/voe_base.h
@@ -86,7 +86,7 @@ public:
protected:
VoiceEngine() {}
- virtual ~VoiceEngine() {}
+ ~VoiceEngine() {}
};
// VoEBase
diff --git a/voice_engine/voe_audio_processing_impl.cc b/voice_engine/voe_audio_processing_impl.cc
index 9397bfaf..a9780f27 100644
--- a/voice_engine/voe_audio_processing_impl.cc
+++ b/voice_engine/voe_audio_processing_impl.cc
@@ -51,7 +51,7 @@ VoEAudioProcessing* VoEAudioProcessing::GetInterface(VoiceEngine* voiceEngine) {
if (NULL == voiceEngine) {
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_base_impl.cc b/voice_engine/voe_base_impl.cc
index b6356463..28eb35cd 100644
--- a/voice_engine/voe_base_impl.cc
+++ b/voice_engine/voe_base_impl.cc
@@ -40,7 +40,7 @@ VoEBase* VoEBase::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
}
diff --git a/voice_engine/voe_call_report_impl.cc b/voice_engine/voe_call_report_impl.cc
index 778cb816..c4a6bc91 100644
--- a/voice_engine/voe_call_report_impl.cc
+++ b/voice_engine/voe_call_report_impl.cc
@@ -30,7 +30,7 @@ VoECallReport* VoECallReport::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_codec_impl.cc b/voice_engine/voe_codec_impl.cc
index 993e7bdf..4768004a 100644
--- a/voice_engine/voe_codec_impl.cc
+++ b/voice_engine/voe_codec_impl.cc
@@ -29,7 +29,7 @@ VoECodec* VoECodec::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_dtmf_impl.cc b/voice_engine/voe_dtmf_impl.cc
index 05817378..5353cf41 100644
--- a/voice_engine/voe_dtmf_impl.cc
+++ b/voice_engine/voe_dtmf_impl.cc
@@ -29,7 +29,7 @@ VoEDtmf* VoEDtmf::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_encryption_impl.cc b/voice_engine/voe_encryption_impl.cc
index 4ac8ada5..4dbed0a6 100644
--- a/voice_engine/voe_encryption_impl.cc
+++ b/voice_engine/voe_encryption_impl.cc
@@ -28,7 +28,7 @@ VoEEncryption* VoEEncryption::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_external_media_impl.cc b/voice_engine/voe_external_media_impl.cc
index 12c75cb5..c8550c84 100644
--- a/voice_engine/voe_external_media_impl.cc
+++ b/voice_engine/voe_external_media_impl.cc
@@ -29,7 +29,7 @@ VoEExternalMedia* VoEExternalMedia::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_file_impl.cc b/voice_engine/voe_file_impl.cc
index 869cd864..1dda43fd 100644
--- a/voice_engine/voe_file_impl.cc
+++ b/voice_engine/voe_file_impl.cc
@@ -31,7 +31,7 @@ VoEFile* VoEFile::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_hardware_impl.cc b/voice_engine/voe_hardware_impl.cc
index 99e65cc4..db7e18fa 100644
--- a/voice_engine/voe_hardware_impl.cc
+++ b/voice_engine/voe_hardware_impl.cc
@@ -30,7 +30,7 @@ VoEHardware* VoEHardware::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_neteq_stats_impl.cc b/voice_engine/voe_neteq_stats_impl.cc
index 50f2dfbd..94966cb8 100644
--- a/voice_engine/voe_neteq_stats_impl.cc
+++ b/voice_engine/voe_neteq_stats_impl.cc
@@ -29,7 +29,7 @@ VoENetEqStats* VoENetEqStats::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_network_impl.cc b/voice_engine/voe_network_impl.cc
index d0b9895c..c5639008 100644
--- a/voice_engine/voe_network_impl.cc
+++ b/voice_engine/voe_network_impl.cc
@@ -28,7 +28,7 @@ VoENetwork* VoENetwork::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_rtp_rtcp_impl.cc b/voice_engine/voe_rtp_rtcp_impl.cc
index 0414ecda..3470443c 100644
--- a/voice_engine/voe_rtp_rtcp_impl.cc
+++ b/voice_engine/voe_rtp_rtcp_impl.cc
@@ -29,7 +29,7 @@ VoERTP_RTCP* VoERTP_RTCP::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_video_sync_impl.cc b/voice_engine/voe_video_sync_impl.cc
index b0910c31..7df46031 100644
--- a/voice_engine/voe_video_sync_impl.cc
+++ b/voice_engine/voe_video_sync_impl.cc
@@ -27,7 +27,7 @@ VoEVideoSync* VoEVideoSync::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voe_volume_control_impl.cc b/voice_engine/voe_volume_control_impl.cc
index f0d16521..3d55c7f3 100644
--- a/voice_engine/voe_volume_control_impl.cc
+++ b/voice_engine/voe_volume_control_impl.cc
@@ -29,7 +29,7 @@ VoEVolumeControl* VoEVolumeControl::GetInterface(VoiceEngine* voiceEngine)
{
return NULL;
}
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
s->AddRef();
return s;
#endif
diff --git a/voice_engine/voice_engine_impl.cc b/voice_engine/voice_engine_impl.cc
index 18f841c2..affd1a8d 100644
--- a/voice_engine/voice_engine_impl.cc
+++ b/voice_engine/voice_engine_impl.cc
@@ -31,13 +31,12 @@ WEBRTC_DLLEXPORT VoiceEngine* GetVoiceEngine();
VoiceEngine* GetVoiceEngine()
{
VoiceEngineImpl* self = new VoiceEngineImpl();
- VoiceEngine* ve = reinterpret_cast<VoiceEngine*>(self);
- if (ve != NULL)
+ if (self != NULL)
{
self->AddRef(); // First reference. Released in VoiceEngine::Delete.
gVoiceEngineInstanceCounter++;
}
- return ve;
+ return self;
}
} // extern "C"
@@ -128,7 +127,7 @@ bool VoiceEngine::Delete(VoiceEngine*& voiceEngine)
if (voiceEngine == NULL)
return false;
- VoiceEngineImpl* s = reinterpret_cast<VoiceEngineImpl*>(voiceEngine);
+ VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
// Release the reference that was added in GetVoiceEngine.
int ref = s->Release();
voiceEngine = NULL;
diff --git a/voice_engine/voice_engine_impl.h b/voice_engine/voice_engine_impl.h
index 7db77be6..2b3963cd 100644
--- a/voice_engine/voice_engine_impl.h
+++ b/voice_engine/voice_engine_impl.h
@@ -59,6 +59,7 @@ namespace webrtc
{
class VoiceEngineImpl : public voe::SharedData, // Must be the first base class
+ public VoiceEngine,
#ifdef WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
public VoEAudioProcessingImpl,
#endif