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 32b77ad..43d9e03 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -789,6 +789,8 @@ static const struct plugin_api rockbox_api = {
/* new stuff at the end, sort into place next time
the API gets incompatible */
+ tree_get_entries,
+ tree_get_entry_at,
};
int plugin_load(const char* plugin, const void* parameter)
@@ -865,6 +867,9 @@ int plugin_load(const char* plugin, const void* parameter)
lcd_remote_update();
#endif
push_current_activity(ACTIVITY_PLUGIN);
+ /* some plugins assume the entry cache doesn't move and save pointers to it
+ * they should be fixed properly instead of this lock */
+ tree_lock_cache(tree_get_context());
FOR_NB_SCREENS(i)
viewportmanager_theme_enable(i, false, NULL);
@@ -879,6 +884,7 @@ int plugin_load(const char* plugin, const void* parameter)
rc = p_hdr->entry_point(parameter);
+ tree_unlock_cache(tree_get_context());
pop_current_activity();
if (!pfn_tsr_exit)