diff options
Diffstat (limited to 'apps/plugin.c')
-rw-r--r-- | apps/plugin.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/apps/plugin.c b/apps/plugin.c index 32b77ad287..43d9e03acf 100644 --- a/apps/plugin.c +++ b/apps/plugin.c | |||
@@ -789,6 +789,8 @@ static const struct plugin_api rockbox_api = { | |||
789 | 789 | ||
790 | /* new stuff at the end, sort into place next time | 790 | /* new stuff at the end, sort into place next time |
791 | the API gets incompatible */ | 791 | the API gets incompatible */ |
792 | tree_get_entries, | ||
793 | tree_get_entry_at, | ||
792 | }; | 794 | }; |
793 | 795 | ||
794 | int plugin_load(const char* plugin, const void* parameter) | 796 | int plugin_load(const char* plugin, const void* parameter) |
@@ -865,6 +867,9 @@ int plugin_load(const char* plugin, const void* parameter) | |||
865 | lcd_remote_update(); | 867 | lcd_remote_update(); |
866 | #endif | 868 | #endif |
867 | push_current_activity(ACTIVITY_PLUGIN); | 869 | push_current_activity(ACTIVITY_PLUGIN); |
870 | /* some plugins assume the entry cache doesn't move and save pointers to it | ||
871 | * they should be fixed properly instead of this lock */ | ||
872 | tree_lock_cache(tree_get_context()); | ||
868 | 873 | ||
869 | FOR_NB_SCREENS(i) | 874 | FOR_NB_SCREENS(i) |
870 | viewportmanager_theme_enable(i, false, NULL); | 875 | viewportmanager_theme_enable(i, false, NULL); |
@@ -879,6 +884,7 @@ int plugin_load(const char* plugin, const void* parameter) | |||
879 | 884 | ||
880 | rc = p_hdr->entry_point(parameter); | 885 | rc = p_hdr->entry_point(parameter); |
881 | 886 | ||
887 | tree_unlock_cache(tree_get_context()); | ||
882 | pop_current_activity(); | 888 | pop_current_activity(); |
883 | 889 | ||
884 | if (!pfn_tsr_exit) | 890 | if (!pfn_tsr_exit) |