From 5973df1a8c82c0576958bb43edefe5909f2f8cc5 Mon Sep 17 00:00:00 2001 From: Karl Tomlinson <karlt+@karlt.net> Date: Thu, 30 Mar 2023 23:18:45 +0000 Subject: [PATCH] Bug 1801190 clarify that MockCubebStream needs the same memory layout as cubeb_stream r=padenot to save problems if/when further members are added. cubeb_stream_user_ptr() is not used/tested right now, but this change will make that behave as expected. Differential Revision: https://phabricator.services.mozilla.com/D173925 --- dom/media/gtest/MockCubeb.cpp | 2 +- dom/media/gtest/MockCubeb.h | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/dom/media/gtest/MockCubeb.cpp b/dom/media/gtest/MockCubeb.cpp index 80975a5300189..10422c77571a8 100644 --- a/dom/media/gtest/MockCubeb.cpp +++ b/dom/media/gtest/MockCubeb.cpp @@ -146,6 +146,7 @@ MockCubebStream::MockCubebStream(cubeb* aContext, cubeb_devid aInputDevice, void* aUserPtr, SmartMockCubebStream* aSelf, bool aFrozenStart) : context(aContext), + mUserPtr(aUserPtr), mHasInput(aInputStreamParams), mHasOutput(aOutputStreamParams), mSelf(aSelf), @@ -153,7 +154,6 @@ MockCubebStream::MockCubebStream(cubeb* aContext, cubeb_devid aInputDevice, mFrozenStart(aFrozenStart), mDataCallback(aDataCallback), mStateCallback(aStateCallback), - mUserPtr(aUserPtr), mInputDeviceID(aInputDevice), mOutputDeviceID(aOutputDevice), mAudioGenerator(aInputStreamParams ? aInputStreamParams->channels diff --git a/dom/media/gtest/MockCubeb.h b/dom/media/gtest/MockCubeb.h index 040b1dfb62243..4adaa4e02b335 100644 --- a/dom/media/gtest/MockCubeb.h +++ b/dom/media/gtest/MockCubeb.h @@ -137,6 +137,12 @@ class SmartMockCubebStream; // Represents the fake cubeb_stream. The context instance is needed to // provide access on cubeb_ops struct. class MockCubebStream { + // These members need to have the exact same memory layout as a real + // cubeb_stream, so that AsMock() returns a pointer to this that can be used + // as a cubeb_stream. + cubeb* context; + void* mUserPtr; + public: MockCubebStream(cubeb* aContext, cubeb_devid aInputDevice, cubeb_stream_params* aInputStreamParams, @@ -194,9 +200,6 @@ class MockCubebStream { void Process10Ms(); - private: - cubeb* context = nullptr; - public: const bool mHasInput; const bool mHasOutput; @@ -229,8 +232,6 @@ class MockCubebStream { cubeb_state_callback mStateCallback = nullptr; // The device changed callback cubeb_device_changed_callback mDeviceChangedCallback = nullptr; - // Stream's user data - void* mUserPtr = nullptr; // The stream params cubeb_stream_params mOutputParams = {}; cubeb_stream_params mInputParams = {}; -- GitLab