summaryrefslogtreecommitdiff
path: root/apps/plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugin.c')
-rw-r--r--apps/plugin.c6
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
794int plugin_load(const char* plugin, const void* parameter) 796int 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)