diff --git a/src/modules/eterm/src/eterm/terminal/kittygraphicsprotocol.cpp b/src/modules/eterm/src/eterm/terminal/kittygraphicsprotocol.cpp index b38b11901..218b36a5e 100644 --- a/src/modules/eterm/src/eterm/terminal/kittygraphicsprotocol.cpp +++ b/src/modules/eterm/src/eterm/terminal/kittygraphicsprotocol.cpp @@ -12,7 +12,8 @@ #include #include -#if EE_PLATFORM != EE_PLATFORM_WIN && EE_PLATFORM != EE_PLATFORM_EMSCRIPTEN +#if EE_PLATFORM != EE_PLATFORM_WIN && EE_PLATFORM != EE_PLATFORM_EMSCRIPTEN && \ + EE_PLATFORM != EE_PLATFORM_ANDROID #include #include #include @@ -89,7 +90,8 @@ bool decodeBase64( std::string_view input, bool finalChunk, std::vector& } bool readSharedMemory( const KittyGraphicsCommandData& data, std::vector& output ) { -#if EE_PLATFORM == EE_PLATFORM_WIN || EE_PLATFORM == EE_PLATFORM_EMSCRIPTEN +#if EE_PLATFORM == EE_PLATFORM_WIN || EE_PLATFORM == EE_PLATFORM_EMSCRIPTEN || \ + EE_PLATFORM == EE_PLATFORM_ANDROID (void)data; (void)output; return false; @@ -597,7 +599,7 @@ KittyGraphicsHandleResult KittyGraphicsProtocol::finishTransfer( PendingTransfer std::vector* destinationPixels = nullptr; bool createdFrame = false; if ( frameNumber == 1 ) { - if ( !image->second.rgba.unique() ) + if ( image->second.rgba.use_count() != 1 ) image->second.rgba = std::make_shared>( *image->second.rgba ); destinationPixels = image->second.rgba.get(); } else { @@ -749,7 +751,7 @@ KittyGraphicsHandleResult KittyGraphicsProtocol::finishTransfer( PendingTransfer mPrimaryPlacements.end() ); } std::shared_ptr> pixelStorage; - if ( existing != mImages.end() && existing->second.rgba.unique() ) { + if ( existing != mImages.end() && existing->second.rgba.use_count() == 1 ) { pixelStorage = existing->second.rgba; pixelStorage->assign( pixels.begin(), pixels.end() ); if ( format == 24 ) @@ -1282,7 +1284,7 @@ KittyGraphicsProtocol::composeFrames( const KittyGraphicsCommandData& data ) { source->data() + static_cast( sourceY + row ) * imageStride + static_cast( sourceX ) * 4, rowBytes ); - if ( destinationFrame == 1 && !image->second.rgba.unique() ) { + if ( destinationFrame == 1 && image->second.rgba.use_count() != 1 ) { image->second.rgba = std::make_shared>( *image->second.rgba ); destination = image->second.rgba.get(); } diff --git a/src/tests/unit_tests/eterm_tests.cpp b/src/tests/unit_tests/eterm_tests.cpp index d05946171..c7493652e 100644 --- a/src/tests/unit_tests/eterm_tests.cpp +++ b/src/tests/unit_tests/eterm_tests.cpp @@ -14,7 +14,8 @@ #include #include -#if EE_PLATFORM != EE_PLATFORM_WIN && EE_PLATFORM != EE_PLATFORM_EMSCRIPTEN +#if EE_PLATFORM != EE_PLATFORM_WIN && EE_PLATFORM != EE_PLATFORM_EMSCRIPTEN && \ + EE_PLATFORM != EE_PLATFORM_ANDROID #include #include #include @@ -1035,7 +1036,8 @@ UTEST( eterm, kitty_graphics_reuses_unreferenced_replacement_pixel_storage ) { EXPECT_TRUE( expected == *protocol.imagePixels( 91 ) ); } -#if EE_PLATFORM != EE_PLATFORM_WIN && EE_PLATFORM != EE_PLATFORM_EMSCRIPTEN +#if EE_PLATFORM != EE_PLATFORM_WIN && EE_PLATFORM != EE_PLATFORM_EMSCRIPTEN && \ + EE_PLATFORM != EE_PLATFORM_ANDROID UTEST( eterm, kitty_graphics_reads_and_unlinks_posix_shared_memory ) { // mpv uses the Linux-compatible form without the optional leading slash. const std::string name = "eterm-kitty-unit-" + std::to_string( getpid() ); diff --git a/src/tools/ecode/plugins/aiassistant/aiassistantplugin.hpp b/src/tools/ecode/plugins/aiassistant/aiassistantplugin.hpp index a66d2df2f..daeac445e 100644 --- a/src/tools/ecode/plugins/aiassistant/aiassistantplugin.hpp +++ b/src/tools/ecode/plugins/aiassistant/aiassistantplugin.hpp @@ -40,9 +40,9 @@ class AIAssistantPlugin : public PluginBase { std::string getDescription() override { return Definition().description; } - bool hasSettingsPage() const override { return true; } + bool hasSettingsPage() const { return true; } - void registerSettings( SettingsPage& page ) override; + void registerSettings( SettingsPage& page ); const LLMProviders& getProviders() { return mProviders; } diff --git a/src/tools/ecode/plugins/autocomplete/autocompleteplugin.hpp b/src/tools/ecode/plugins/autocomplete/autocompleteplugin.hpp index b0abaf69e..12cb47cc3 100644 --- a/src/tools/ecode/plugins/autocomplete/autocompleteplugin.hpp +++ b/src/tools/ecode/plugins/autocomplete/autocompleteplugin.hpp @@ -95,9 +95,9 @@ class AutoCompletePlugin : public Plugin { bool isReady() const override { return true; } - bool hasSettingsPage() const override { return true; } + bool hasSettingsPage() const { return true; } - void registerSettings( SettingsPage& page ) override; + void registerSettings( SettingsPage& page ); void onRegister( UICodeEditor* ) override; diff --git a/src/tools/ecode/plugins/debugger/debuggerplugin.hpp b/src/tools/ecode/plugins/debugger/debuggerplugin.hpp index 1080b19c5..771b2f52b 100644 --- a/src/tools/ecode/plugins/debugger/debuggerplugin.hpp +++ b/src/tools/ecode/plugins/debugger/debuggerplugin.hpp @@ -68,9 +68,9 @@ class DebuggerPlugin : public PluginBase { std::string getDescription() override { return Definition().description; } - bool hasSettingsPage() const override { return true; } + bool hasSettingsPage() const { return true; } - void registerSettings( SettingsPage& page ) override; + void registerSettings( SettingsPage& page ); void onSaveState( IniFile* state ) override; diff --git a/src/tools/ecode/plugins/discordRPC/discordRPCplugin.hpp b/src/tools/ecode/plugins/discordRPC/discordRPCplugin.hpp index f1e8613d5..8b0c0005a 100644 --- a/src/tools/ecode/plugins/discordRPC/discordRPCplugin.hpp +++ b/src/tools/ecode/plugins/discordRPC/discordRPCplugin.hpp @@ -43,9 +43,9 @@ class DiscordRPCplugin : public PluginBase { std::string getDescription() override { return Definition().description; } - bool hasSettingsPage() const override { return true; } + bool hasSettingsPage() const { return true; } - void registerSettings( SettingsPage& page ) override; + void registerSettings( SettingsPage& page ); protected: DiscordIPC mIPC; diff --git a/src/tools/ecode/plugins/formatter/formatterplugin.hpp b/src/tools/ecode/plugins/formatter/formatterplugin.hpp index 7bb69d563..7dd5dbc93 100644 --- a/src/tools/ecode/plugins/formatter/formatterplugin.hpp +++ b/src/tools/ecode/plugins/formatter/formatterplugin.hpp @@ -50,9 +50,9 @@ class FormatterPlugin : public Plugin { std::string getDescription() { return Definition().description; } - bool hasSettingsPage() const override { return true; } + bool hasSettingsPage() const { return true; } - void registerSettings( SettingsPage& page ) override; + void registerSettings( SettingsPage& page ); virtual String::HashType getConfigFileHash() { return mConfigHash; } diff --git a/src/tools/ecode/plugins/git/gitplugin.hpp b/src/tools/ecode/plugins/git/gitplugin.hpp index dda3cf11e..98b327358 100644 --- a/src/tools/ecode/plugins/git/gitplugin.hpp +++ b/src/tools/ecode/plugins/git/gitplugin.hpp @@ -83,9 +83,9 @@ class GitPlugin : public PluginBase { std::string getDescription() override { return Definition().description; } - bool hasSettingsPage() const override { return true; } + bool hasSettingsPage() const { return true; } - void registerSettings( SettingsPage& page ) override; + void registerSettings( SettingsPage& page ); void onSaveState( IniFile* state ) override; diff --git a/src/tools/ecode/plugins/linter/linterplugin.hpp b/src/tools/ecode/plugins/linter/linterplugin.hpp index 3d0548273..ca45f69fb 100644 --- a/src/tools/ecode/plugins/linter/linterplugin.hpp +++ b/src/tools/ecode/plugins/linter/linterplugin.hpp @@ -76,9 +76,9 @@ class LinterPlugin : public Plugin { std::string getDescription() { return Definition().description; } - bool hasSettingsPage() const override { return true; } + bool hasSettingsPage() const { return true; } - void registerSettings( SettingsPage& page ) override; + void registerSettings( SettingsPage& page ); virtual String::HashType getConfigFileHash() { return mConfigHash; } diff --git a/src/tools/ecode/plugins/spellchecker/spellcheckerplugin.hpp b/src/tools/ecode/plugins/spellchecker/spellcheckerplugin.hpp index 75912dea5..0e414422a 100644 --- a/src/tools/ecode/plugins/spellchecker/spellcheckerplugin.hpp +++ b/src/tools/ecode/plugins/spellchecker/spellcheckerplugin.hpp @@ -39,9 +39,9 @@ class SpellCheckerPlugin : public PluginBase { std::string getDescription() override { return Definition().description; } - bool hasSettingsPage() const override { return true; } + bool hasSettingsPage() const { return true; } - void registerSettings( SettingsPage& page ) override; + void registerSettings( SettingsPage& page ); void drawAfterLineText( UICodeEditor* editor, const Int64& index, Vector2f position, const Float& fontSize, const Float& lineHeight ) override; diff --git a/src/tools/ecode/plugins/xmltools/xmltoolsplugin.hpp b/src/tools/ecode/plugins/xmltools/xmltoolsplugin.hpp index 0f951963b..3633abb92 100644 --- a/src/tools/ecode/plugins/xmltools/xmltoolsplugin.hpp +++ b/src/tools/ecode/plugins/xmltools/xmltoolsplugin.hpp @@ -36,9 +36,9 @@ class XMLToolsPlugin : public PluginBase { std::string getDescription() override { return Definition().description; } - bool hasSettingsPage() const override { return true; } + bool hasSettingsPage() const { return true; } - void registerSettings( SettingsPage& page ) override; + void registerSettings( SettingsPage& page ); bool getHighlightMatch() const;