Author: ArcRiley
Date: 2009-02-22 17:27:53 -0500 (Sun, 22 Feb 2009)
New Revision: 1515

Modified:
   trunk/concordance/src/__init__.py
   trunk/concordance/src/_core/__init__.c
   trunk/concordance/src/sockets/Socket.c
Log:
fixed context sharing between modules

Modified: trunk/concordance/src/__init__.py
===================================================================
--- trunk/concordance/src/__init__.py   2009-02-21 17:31:52 UTC (rev 1514)
+++ trunk/concordance/src/__init__.py   2009-02-22 22:27:53 UTC (rev 1515)
@@ -26,4 +26,4 @@
 from concordance import services
 from concordance import sockets
 
-del(_core)                                       # Clean up namespace
+#del(_core)                                       # Clean up namespace

Modified: trunk/concordance/src/_core/__init__.c
===================================================================
--- trunk/concordance/src/_core/__init__.c      2009-02-21 17:31:52 UTC (rev 
1514)
+++ trunk/concordance/src/_core/__init__.c      2009-02-22 22:27:53 UTC (rev 
1515)
@@ -112,7 +112,6 @@
   */
   globals->context = g_main_context_new();
 
-
   /* launch _core_loop thread
 
      GThread*      g_thread_create     (GThreadFunc func,

Modified: trunk/concordance/src/sockets/Socket.c
===================================================================
--- trunk/concordance/src/sockets/Socket.c      2009-02-21 17:31:52 UTC (rev 
1514)
+++ trunk/concordance/src/sockets/Socket.c      2009-02-22 22:27:53 UTC (rev 
1515)
@@ -21,6 +21,9 @@
 
 #include "concordance.sockets.h"
 
+static gboolean
+_listenNew(GIOChannel* channel, GIOCondition condition, gpointer s);
+  
                                                                           /*\
 cdef class Socket :                                                       \*/
   static char socketsSocket_Doc[] = "Test";
@@ -216,7 +219,7 @@
       gint                       socket;
       struct sockaddr            addr;
       guint                      addrlen = sizeof(addr);
-
+    
     /* accept new connection, return if we fail to connect
 
        int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
@@ -246,9 +249,10 @@
   _new(PyTypeObject* type, PyObject* args, PyObject* kwds) {              /*\
     cdef :                                                                \*/
       socketsSocket_Object*      self;
+      PyObject*                  _core;
   
-    /* first inherit base type */
-    self = (socketsSocket_Object*) type->tp_base->tp_new(type, args, kwds);
+    /* this is lowest level, just alloc */
+    self = (socketsSocket_Object*) type->tp_alloc(type, 0);
     if (!self)
       return NULL;
 
@@ -280,8 +284,8 @@
 
        void*            PyModule_GetState        (PyObject*);
     */
-    self->context = (*(concordGlobals**) PyModule_GetState(
-                     *(PyObject**) PyModule_GetState(self->module)))->context;
+    _core = *(PyObject**) PyModule_GetState(self->module);
+    self->context = ((concordGlobals*) PyModule_GetState(_core))->context;
 
     /* return self */
     return (PyObject*) self;
@@ -301,8 +305,8 @@
     if (self->module)
       Py_DECREF(self->module);
 
-    /* lastly dealloc base type */  
-    s->ob_type->tp_base->tp_dealloc(s);
+    /* lastly delete the object */  
+    PyObject_Del(self);
   }  
   
   /*
@@ -321,10 +325,10 @@
     "concordance.sockets.Socket",                /*tp_name*/
     sizeof(socketsSocket_Object),                /*tp_basicsize*/
     0,                                           /*tp_itemsize*/
-    (destructor) _dealloc,                       /*tp_dealloc*/
+    _dealloc,                                    /*tp_dealloc*/
     0,                                           /*tp_print*/
-    (getattrfunc) 0,                             /*tp_getattr*/
-    (setattrfunc) 0,                             /*tp_setattr*/
+    0,                                           /*tp_getattr*/
+    0,                                           /*tp_setattr*/
     0,                                           /*tp_compare*/
     0,                                           /*tp_repr*/
     0,                                           /*tp_as_number*/

_______________________________________________
PySoy-SVN mailing list
PySoy-SVN@pysoy.org
http://www.pysoy.org/mailman/listinfo/pysoy-svn

Reply via email to