java-gobject-introspection r148 - in trunk/src/org/gnome/gir: compiler gobject repository runtime



Author: walters
Date: Sun Dec  7 17:27:25 2008
New Revision: 148
URL: http://svn.gnome.org/viewvc/java-gobject-introspection?rev=148&view=rev

Log:
Move init into GlibRuntime, where we're doing most other special bits

Some import and other misc cleanups.

Removed:
   trunk/src/org/gnome/gir/gobject/GObjectGlobals.java
Modified:
   trunk/src/org/gnome/gir/compiler/ClassCompilation.java
   trunk/src/org/gnome/gir/gobject/GlibRuntime.java
   trunk/src/org/gnome/gir/gobject/NativeObject.java
   trunk/src/org/gnome/gir/repository/Repository.java
   trunk/src/org/gnome/gir/runtime/GType.java

Modified: trunk/src/org/gnome/gir/compiler/ClassCompilation.java
==============================================================================
--- trunk/src/org/gnome/gir/compiler/ClassCompilation.java	(original)
+++ trunk/src/org/gnome/gir/compiler/ClassCompilation.java	Sun Dec  7 17:27:25 2008
@@ -6,7 +6,6 @@
 import static org.objectweb.asm.Opcodes.ACC_STATIC;
 import static org.objectweb.asm.Opcodes.RETURN;
 
-import org.gnome.gir.repository.Repository;
 import org.gnome.gir.runtime.GType;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.ClassWriter;

Modified: trunk/src/org/gnome/gir/gobject/GlibRuntime.java
==============================================================================
--- trunk/src/org/gnome/gir/gobject/GlibRuntime.java	(original)
+++ trunk/src/org/gnome/gir/gobject/GlibRuntime.java	Sun Dec  7 17:27:25 2008
@@ -27,6 +27,7 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.gnome.gir.repository.Transfer;
 import org.gnome.gir.runtime.GObject;
@@ -46,6 +47,31 @@
 	private static final Set<CallbackData> outstandingCallbacks 
 		= Collections.synchronizedSet(new HashSet<CallbackData>());
 
+	
+	private static AtomicBoolean initialized = new AtomicBoolean(false);
+	
+	public static void init() {
+		if (initialized.getAndSet(true))
+			return;
+		final GlibAPI.GLogFunc handler = new GlibAPI.GLogFunc() {
+			@Override
+			public void callback(String log_domain, int log_level,
+					String message, Pointer data) {
+				if (((log_level & GlibAPI.GLogLevelFlags.CRITICAL) > 0) || 
+						((log_level & GlibAPI.GLogLevelFlags.ERROR) > 0) ||
+						((log_level & GlibAPI.GLogLevelFlags.WARNING) > 0)) {
+					String msg = "GLib Failure: " + log_domain + " " + message;
+					System.err.println(msg);				
+					throw new RuntimeException(msg);
+				}
+			}
+		};
+		
+		GlibAPI.glib.g_log_set_default_handler(handler, null);
+		GThreadAPI.gthread.g_thread_init(null);
+		GObjectAPI.gobj.g_type_init();
+	}	
+	
 	public static final String toStringAndGFree(Pointer ptr) {
 		String result = ptr.getString(0);
 		GlibAPI.glib.g_free(ptr);

Modified: trunk/src/org/gnome/gir/gobject/NativeObject.java
==============================================================================
--- trunk/src/org/gnome/gir/gobject/NativeObject.java	(original)
+++ trunk/src/org/gnome/gir/gobject/NativeObject.java	Sun Dec  7 17:27:25 2008
@@ -227,7 +227,6 @@
 
 	    }
 	    
-	    @SuppressWarnings("unchecked")
 		protected static Class<?> lookupProxyChain(GType gtype) {
 	    	Class<?> ret = null;
 	    	while (ret == null && !gtype.equals(GType.OBJECT)) {

Modified: trunk/src/org/gnome/gir/repository/Repository.java
==============================================================================
--- trunk/src/org/gnome/gir/repository/Repository.java	(original)
+++ trunk/src/org/gnome/gir/repository/Repository.java	Sun Dec  7 17:27:25 2008
@@ -2,7 +2,7 @@
 
 import org.gnome.gir.gobject.GErrorException;
 import org.gnome.gir.gobject.GErrorStruct;
-import org.gnome.gir.gobject.GObjectGlobals;
+import org.gnome.gir.gobject.GlibRuntime;
 import org.gnome.gir.gobject.NativeObject;
 import org.gnome.gir.runtime.GObject;
 
@@ -86,7 +86,7 @@
 	}
 	
 	public static synchronized Repository getDefault() {
-		GObjectGlobals.init();
+		GlibRuntime.init();
 		return (Repository) NativeObject.Internals.objectFor(getNativeLibrary().g_irepository_get_default(),
 									  Repository.class, false, false);
 	}

Modified: trunk/src/org/gnome/gir/runtime/GType.java
==============================================================================
--- trunk/src/org/gnome/gir/runtime/GType.java	(original)
+++ trunk/src/org/gnome/gir/runtime/GType.java	Sun Dec  7 17:27:25 2008
@@ -48,12 +48,9 @@
 import java.util.Map;
 
 import org.gnome.gir.gobject.GObjectAPI;
-import org.gnome.gir.gobject.UnmappedPointer;
 import org.gnome.gir.repository.BaseInfo;
 import org.gnome.gir.repository.Repository;
-import org.objectweb.asm.Type;
 
-import com.sun.jna.Callback;
 import com.sun.jna.FromNativeContext;
 import com.sun.jna.NativeLong;
 import com.sun.jna.Pointer;



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