From 56373bcc07ebcbde0e058c377d124c6e58ddde16 Mon Sep 17 00:00:00 2001 From: Tom Poole Date: Tue, 8 Dec 2020 10:02:53 +0000 Subject: [PATCH] Restricted some disabled warning regions --- .../format_types/juce_AudioUnitPluginFormat.mm | 7 ++++++- .../format_types/juce_LADSPAPluginFormat.cpp | 2 +- .../format_types/juce_VSTPluginFormat.cpp | 18 ++++++++++-------- .../juce_audio_processors.cpp | 2 -- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm index 5d8eef9361..1982684293 100644 --- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm +++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm @@ -25,6 +25,8 @@ #if JUCE_PLUGINHOST_AU && (JUCE_MAC || JUCE_IOS) +JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations") + #if JUCE_MAC #include #include @@ -243,7 +245,8 @@ namespace AudioUnitFormatHelpers if (Handle h = Get1IndResource (thngType, i)) { HLock (h); - const uint32* const types = (const uint32*) *h; + uint32 types[3]; + std::memcpy (types, *h, sizeof (types)); if (types[0] == kAudioUnitType_MusicDevice || types[0] == kAudioUnitType_MusicEffect @@ -2908,4 +2911,6 @@ FileSearchPath AudioUnitPluginFormat::getDefaultLocationsToSearch() } // namespace juce +JUCE_END_IGNORE_WARNINGS_GCC_LIKE + #endif diff --git a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp index 19f1d7ac7a..176150e612 100644 --- a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp @@ -374,7 +374,7 @@ public: destData.setSize ((size_t) numParameters * sizeof (float)); destData.fillWith (0); - auto* p = (float*) ((char*) destData.getData()); + auto* p = unalignedPointerCast (destData.getData()); for (int i = 0; i < numParameters; ++i) if (auto* param = getParameters()[i]) diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp index 23d7ae17e2..d3b19a211b 100644 --- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp @@ -55,6 +55,7 @@ namespace Vst2 JUCE_END_IGNORE_WARNINGS_GCC_LIKE JUCE_END_IGNORE_WARNINGS_MSVC +JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations") JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4355) #include "juce_VSTMidiEventList.h" @@ -1768,9 +1769,9 @@ struct VSTPluginInstance : public AudioPluginInstance, { if (i != oldProg) { - auto prog = (const fxProgram*) (((const char*) (set->programs)) + i * progLen); + auto prog = addBytesToPointer (set->programs, i * progLen); - if (((const char*) prog) - ((const char*) set) >= (ssize_t) dataSize) + if (getAddressDifference (prog, set) >= (int) dataSize) return false; if (fxbSwap (set->numPrograms) > 0) @@ -1784,9 +1785,9 @@ struct VSTPluginInstance : public AudioPluginInstance, if (fxbSwap (set->numPrograms) > 0) setCurrentProgram (oldProg); - auto prog = (const fxProgram*) (((const char*) (set->programs)) + oldProg * progLen); + auto prog = addBytesToPointer (set->programs, oldProg * progLen); - if (((const char*) prog) - ((const char*) set) >= (ssize_t) dataSize) + if (getAddressDifference (prog, set) >= (int) dataSize) return false; if (! restoreProgramSettings (prog)) @@ -1906,14 +1907,14 @@ struct VSTPluginInstance : public AudioPluginInstance, auto oldProgram = getCurrentProgram(); if (oldProgram >= 0) - setParamsInProgramBlock ((fxProgram*) (((char*) (set->programs)) + oldProgram * progLen)); + setParamsInProgramBlock (addBytesToPointer (set->programs, oldProgram * progLen)); for (int i = 0; i < numPrograms; ++i) { if (i != oldProgram) { setCurrentProgram (i); - setParamsInProgramBlock ((fxProgram*) (((char*) (set->programs)) + i * progLen)); + setParamsInProgramBlock (addBytesToPointer (set->programs, i * progLen)); } } @@ -2591,7 +2592,7 @@ private: getCurrentProgramName().copyToUTF8 ((char*) dest.getData(), 63); - auto p = (float*) (((char*) dest.getData()) + 64); + auto p = unalignedPointerCast (((char*) dest.getData()) + 64); for (int i = 0; i < numParameters; ++i) if (auto* param = getParameters()[i]) @@ -2602,7 +2603,7 @@ private: { changeProgramName (getCurrentProgram(), (const char*) m.getData()); - auto p = (float*) (((char*) m.getData()) + 64); + auto p = unalignedPointerCast (((char*) m.getData()) + 64); auto numParameters = getParameters().size(); for (int i = 0; i < numParameters; ++i) @@ -3743,6 +3744,7 @@ void VSTPluginFormat::aboutToScanVSTShellPlugin (const PluginDescription&) {} } // namespace juce +JUCE_END_IGNORE_WARNINGS_GCC_LIKE JUCE_END_IGNORE_WARNINGS_MSVC #endif diff --git a/modules/juce_audio_processors/juce_audio_processors.cpp b/modules/juce_audio_processors/juce_audio_processors.cpp index ac194a19d8..fb0d8e149d 100644 --- a/modules/juce_audio_processors/juce_audio_processors.cpp +++ b/modules/juce_audio_processors/juce_audio_processors.cpp @@ -134,8 +134,6 @@ struct AutoResizingNSViewComponentWithParent : public AutoResizingNSViewCompone } // namespace juce -JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations", "-Wcast-align") - #include "format/juce_AudioPluginFormat.cpp" #include "format/juce_AudioPluginFormatManager.cpp" #include "format_types/juce_LegacyAudioParameter.cpp"