sorcery: Fix cache creation callback.
authorJoshua Colp <jcolp@digium.com>
Tue, 26 May 2015 12:44:18 +0000 (09:44 -0300)
committerJoshua Colp <jcolp@digium.com>
Tue, 26 May 2015 12:46:36 +0000 (07:46 -0500)
The cache creation callback function expects to receive a sorcery_details
structure and not just a standalone object.

Change-Id: I3e4a5a137cb25292eb52d7a14cbb6daa09213450

main/sorcery.c

index 732fb62..f84855e 100644 (file)
@@ -1822,7 +1822,12 @@ void *ast_sorcery_retrieve_by_id(const struct ast_sorcery *sorcery, const char *
        }
 
        if (!cached && object) {
-               AST_VECTOR_CALLBACK(&object_type->wizards, sorcery_cache_create, NULL, object, 0);
+               struct sorcery_details sdetails = {
+                       .sorcery = sorcery,
+                       .obj = object,
+               };
+
+               AST_VECTOR_CALLBACK(&object_type->wizards, sorcery_cache_create, NULL, &sdetails, 0);
        }
        AST_VECTOR_RW_UNLOCK(&object_type->wizards);
 
@@ -2332,4 +2337,4 @@ int ast_sorcery_is_object_field_registered(const struct ast_sorcery_object_type
 const char *ast_sorcery_get_module(const struct ast_sorcery *sorcery)
 {
        return sorcery->module_name;
-}
\ No newline at end of file
+}