Commit a679116f authored by Richard Levitte's avatar Richard Levitte
Browse files

Provide the possibility to clean up internal ENGINE structures. This

takes care of what would otherwise be seen as a memory leak.
parent 3988bb34
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -349,6 +349,9 @@ int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns);
/* Copies across all ENGINE methods and pointers. NB: This does *not* change
 * reference counts however. */
int ENGINE_cpy(ENGINE *dest, const ENGINE *src);
/* Cleans the internal engine structure.  This should only be used when the
 * application is about to exit. */
void ENGINE_cleanup(void);

/* These return values from within the ENGINE structure. These can be useful
 * with functional references as well as structural references - it depends
+14 −0
Original line number Diff line number Diff line
@@ -376,6 +376,20 @@ int ENGINE_free(ENGINE *e)
	return 1;
	}

void ENGINE_cleanup(void)
        {
        ENGINE *iterator = engine_list_head;

        while(iterator != NULL)
                {
                ENGINE_remove(iterator);
                ENGINE_free(iterator);
                iterator = engine_list_head;
                }
        engine_list_flag = 0;
        return;
        }

int ENGINE_set_id(ENGINE *e, const char *id)
	{
	if(id == NULL)