From b797632c6c2a733c7e9083a175136a0bf301cb7f Mon Sep 17 00:00:00 2001
From: "alexey.stratulat" <alexey.stratulat@demlabs.net>
Date: Thu, 27 Feb 2020 00:22:08 +0700
Subject: [PATCH] [*] Fix. Added function to get the number of elements in the
 list of manifests. And fix the work with the list of manifests.

---
 include/dap_chain_plugins_manifest.h |  2 ++
 src/dap_chain_plugins_manifest.c     | 15 ++++++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/include/dap_chain_plugins_manifest.h b/include/dap_chain_plugins_manifest.h
index c4b9b3b..39ae2c7 100644
--- a/include/dap_chain_plugins_manifest.h
+++ b/include/dap_chain_plugins_manifest.h
@@ -28,6 +28,7 @@ typedef struct manifest{
     dap_list_t *dependencys;
     char *author;
     char *description;
+    bool init;
 }manifest_t;
 
 manifest_t *dap_chain_plugins_manifest_new(const char *name, const char *version, const dap_list_t *dep, const char *author,
@@ -39,6 +40,7 @@ static dap_list_t *manifests;
 
 void dap_chain_plugins_manifest_list_create();
 manifest_t *dap_chain_plugins_manifest_get_list(size_t index);
+unsigned int dap_chain_plugins_manifests_get_lenght();
 void dap_chain_plugins_manifest_list_free();
 void dap_chain_plugins_manifest_list_add_manifest(manifest_t *manifest);
 bool dap_chain_plugins_manifest_list_add_from_file(const char *file_path);
diff --git a/src/dap_chain_plugins_manifest.c b/src/dap_chain_plugins_manifest.c
index 877c5f3..6b23616 100644
--- a/src/dap_chain_plugins_manifest.c
+++ b/src/dap_chain_plugins_manifest.c
@@ -2,7 +2,7 @@
 
 dap_list_t *JSON_array_to_dap_list(json_object *obj){
     int len = json_object_array_length(obj);
-    dap_list_t *list = dap_list_alloc();
+    dap_list_t *list = NULL;
     json_object *j_data;
     char *data;
     for (int i = 0; i < len; i++){
@@ -15,12 +15,13 @@ dap_list_t *JSON_array_to_dap_list(json_object *obj){
 
 manifest_t *dap_chain_plugins_manifest_new(const char *name, const char *version, const dap_list_t *dep, const char *author,
                          const char *description){
-    manifest_t *manifest = DAP_NEW(manifest_t);
+    manifest_t *manifest = (manifest_t*)malloc(sizeof(manifest_t));//DAP_NEW(manifest_t);
     manifest->name = dap_strdup(name);
     manifest->version = dap_strdup(version);
-    manifest->dependencys = dap_list_copy(dep);
+    manifest->dependencys = dap_list_copy((dap_list_t*)dep);
     manifest->author = dap_strdup(author);
     manifest->description = dap_strdup(description);
+    manifest->init = false;
     return manifest;
 }
 void dap_chain_plugins_manifest_free(manifest_t *manifest){
@@ -36,7 +37,7 @@ manifest_t* dap_chain_plugins_add_manifest_from_file(const char *file_path){
     log_it(L_INFO, "Parse json file");
     FILE *file = fopen(file_path, "rt");
     if (file == NULL){
-        log_it(L_INFO, "Parse json file");
+        log_it(L_ERROR, "Error open manifest files along the way %s", file_path);
         return NULL;
     }
     fseek(file, 0, SEEK_END);
@@ -65,12 +66,16 @@ manifest_t* dap_chain_plugins_add_manifest_from_file(const char *file_path){
 
 //--------------------------------------------------------
 void dap_chain_plugins_manifest_list_create(){
-    manifests = dap_list_alloc();
+    manifests = NULL;
 }
 manifest_t *dap_chain_plugins_manifest_get_list(size_t index){
     return (manifest_t*)dap_list_nth_data(manifests, (unsigned int)index);
 }
 
+unsigned int dap_chain_plugins_manifests_get_lenght(){
+    return dap_list_length(manifests);
+}
+
 void dap_chain_plugins_manifest_list_free(){
     unsigned int len = dap_list_length(manifests);
     for (unsigned int i = 0; i < len;i++){
-- 
GitLab