[monkey-bubble: 631/753] Get the Bonobo::ActivationContext here, this avoids some nasty reentrancy



commit cd2ea0c78bd754a86fbe0ab623c2f361c13badcd
Author: Martin Baulig <baulig suse de>
Date:   Mon Aug 13 15:05:57 2001 +0000

    Get the Bonobo::ActivationContext here, this avoids some nasty reentrancy
    
    2001-08-13  Martin Baulig  <baulig suse de>
    
    	* gnome-init.c (bonobo_activation_post_args_parse): Get the
    	Bonobo::ActivationContext here, this avoids some nasty
    	reentrancy problems.
    
    	* gnome-program.c (gnome_program_locate_file): Allow the `program'
    	argument to be NULL, in this case call gnome_program_get().

 libgnome/ChangeLog       |    9 +++++++++
 libgnome/gnome-init.c    |    7 +++++++
 libgnome/gnome-program.c |    3 +++
 3 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/libgnome/ChangeLog b/libgnome/ChangeLog
index 27d9752..48357a8 100644
--- a/libgnome/ChangeLog
+++ b/libgnome/ChangeLog
@@ -1,3 +1,12 @@
+2001-08-13  Martin Baulig  <baulig suse de>
+
+	* gnome-init.c (bonobo_activation_post_args_parse): Get the
+	Bonobo::ActivationContext here, this avoids some nasty
+	reentrancy problems.
+
+	* gnome-program.c (gnome_program_locate_file): Allow the `program'
+	argument to be NULL, in this case call gnome_program_get().
+
 2001-08-09  Martin Baulig  <baulig suse de>
 
 	* gnome-util.h (gnome_*_file, gnome_unconditional_*_file): Put
diff --git a/libgnome/gnome-init.c b/libgnome/gnome-init.c
index 8443bec..fd4d072 100644
--- a/libgnome/gnome-init.c
+++ b/libgnome/gnome-init.c
@@ -74,9 +74,16 @@ bonobo_activation_post_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_i
 {
 	int dumb_argc = 1;
 	char *dumb_argv[] = {NULL};
+        BonoboActivationBaseService base_service = {};
 
 	bonobo_activation_postinit (program, mod_info);
 
+        base_service.name = "IDL:Bonobo/ActivationContext:1.0";
+        base_service.session_name = bonobo_activation_session_name_get ();
+        base_service.domain = "session";
+
+        bonobo_activation_service_get (&base_service);
+
 	dumb_argv[0] = program_invocation_name;
 	(void) bonobo_activation_orb_init (&dumb_argc, dumb_argv);
 }
diff --git a/libgnome/gnome-program.c b/libgnome/gnome-program.c
index 200c4b3..b18ae8e 100644
--- a/libgnome/gnome-program.c
+++ b/libgnome/gnome-program.c
@@ -693,6 +693,9 @@ gnome_program_locate_file (GnomeProgram *program, GnomeFileDomain domain,
     gboolean append_app_id = FALSE;
     GValue value = { 0, };
 
+    if (!program)
+	program = gnome_program_get ();
+
     g_return_val_if_fail (program != NULL, NULL);
     g_return_val_if_fail (GNOME_IS_PROGRAM (program), NULL);
     g_return_val_if_fail (program->_priv->state >= APP_PREINIT_DONE, NULL);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]