summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ivy.c14
-rw-r--r--src/ivy.h1
2 files changed, 12 insertions, 3 deletions
diff --git a/src/ivy.c b/src/ivy.c
index 1074974..672d688 100644
--- a/src/ivy.c
+++ b/src/ivy.c
@@ -895,16 +895,24 @@ void IvyInit (const char *appname, const char *ready,
)
{
SocketInit();
-
- ApplicationName = appname;
+ if ( appname )
+ ApplicationName = strdup(appname);
application_callback = callback;
application_user_data = data;
application_die_callback = die_callback;
application_die_user_data = die_data;
- ready_message = ready;
+ if ( ready )
+ ready_message = strdup(ready);
if ( getenv( "IVY_DEBUG_BINARY" )) debug_binary_msg = 1;
}
+void IvyTerminate()
+{
+ if ( ApplicationName )
+ free( ApplicationName );
+ if ( ready_message )
+ free( ready_message );
+}
void IvySetBindCallback( IvyBindCallback bind_callback, void *bind_data )
{
diff --git a/src/ivy.h b/src/ivy.h
index 1701fc1..dc997a8 100644
--- a/src/ivy.h
+++ b/src/ivy.h
@@ -70,6 +70,7 @@ void IvyInit(
IvyDieCallback die_callback, /* last change callback before die */
void *die_data /* user data */
);
+void IvyTerminate();
void IvySetBindCallback(
IvyBindCallback bind_callback,