Changeset 506

Show
Ignore:
Timestamp:
06/26/08 20:02:36 (3 months ago)
Author:
okibi
Message:

fixed memory bug related to gobjects

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/demos/cairo/cairo_clock/clock.d

    r496 r506  
    6464        // This is where we draw on the window 
    6565         
    66         Drawable dr = getDrawable(); 
     66        Drawable dr = getWindow(); 
    6767         
    6868        int width; 
  • trunk/src/atk/GObjectAccessible.d

    r480 r506  
    104104            else return; 
    105105        } 
     106        //Check if there already is a D object for this gtk struct 
     107        void* ptr = getDObject(cast(GObject*)atkGObjectAccessible); 
     108        if( ptr !is null ) 
     109        { 
     110            this = cast(GObjectAccessible)ptr; 
     111            return; 
     112        } 
    106113        super(cast(AtkObject*)atkGObjectAccessible); 
    107114        this.atkGObjectAccessible = atkGObjectAccessible; 
  • trunk/src/atk/Hyperlink.d

    r480 r506  
    106106            else return; 
    107107        } 
     108        //Check if there already is a D object for this gtk struct 
     109        void* ptr = getDObject(cast(GObject*)atkHyperlink); 
     110        if( ptr !is null ) 
     111        { 
     112            this = cast(Hyperlink)ptr; 
     113            return; 
     114        } 
    108115        super(cast(GObject*)atkHyperlink); 
    109116        this.atkHyperlink = atkHyperlink; 
  • trunk/src/atk/NoOpObject.d

    r480 r506  
    103103            else return; 
    104104        } 
     105        //Check if there already is a D object for this gtk struct 
     106        void* ptr = getDObject(cast(GObject*)atkNoOpObject); 
     107        if( ptr !is null ) 
     108        { 
     109            this = cast(NoOpObject)ptr; 
     110            return; 
     111        } 
    105112        super(cast(AtkObject*)atkNoOpObject); 
    106113        this.atkNoOpObject = atkNoOpObject; 
  • trunk/src/atk/NoOpObjectFactory.d

    r480 r506  
    9797            else return; 
    9898        } 
     99        //Check if there already is a D object for this gtk struct 
     100        void* ptr = getDObject(cast(GObject*)atkNoOpObjectFactory); 
     101        if( ptr !is null ) 
     102        { 
     103            this = cast(NoOpObjectFactory)ptr; 
     104            return; 
     105        } 
    99106        super(cast(AtkObjectFactory*)atkNoOpObjectFactory); 
    100107        this.atkNoOpObjectFactory = atkNoOpObjectFactory; 
  • trunk/src/atk/ObjectAtk.d

    r480 r506  
    123123            else return; 
    124124        } 
     125        //Check if there already is a D object for this gtk struct 
     126        void* ptr = getDObject(cast(GObject*)atkObject); 
     127        if( ptr !is null ) 
     128        { 
     129            this = cast(ObjectAtk)ptr; 
     130            return; 
     131        } 
    125132        super(cast(GObject*)atkObject); 
    126133        this.atkObject = atkObject; 
  • trunk/src/atk/ObjectFactory.d

    r480 r506  
    105105            else return; 
    106106        } 
     107        //Check if there already is a D object for this gtk struct 
     108        void* ptr = getDObject(cast(GObject*)atkObjectFactory); 
     109        if( ptr !is null ) 
     110        { 
     111            this = cast(ObjectFactory)ptr; 
     112            return; 
     113        } 
    107114        super(cast(GObject*)atkObjectFactory); 
    108115        this.atkObjectFactory = atkObjectFactory; 
  • trunk/src/atk/Registry.d

    r480 r506  
    105105            else return; 
    106106        } 
     107        //Check if there already is a D object for this gtk struct 
     108        void* ptr = getDObject(cast(GObject*)atkRegistry); 
     109        if( ptr !is null ) 
     110        { 
     111            this = cast(Registry)ptr; 
     112            return; 
     113        } 
    107114        super(cast(GObject*)atkRegistry); 
    108115        this.atkRegistry = atkRegistry; 
  • trunk/src/atk/Relation.d

    r480 r506  
    105105            else return; 
    106106        } 
     107        //Check if there already is a D object for this gtk struct 
     108        void* ptr = getDObject(cast(GObject*)atkRelation); 
     109        if( ptr !is null ) 
     110        { 
     111            this = cast(Relation)ptr; 
     112            return; 
     113        } 
    107114        super(cast(GObject*)atkRelation); 
    108115        this.atkRelation = atkRelation; 
  • trunk/src/atk/RelationSet.d

    r480 r506  
    109109            else return; 
    110110        } 
     111        //Check if there already is a D object for this gtk struct 
     112        void* ptr = getDObject(cast(GObject*)atkRelationSet); 
     113        if( ptr !is null ) 
     114        { 
     115            this = cast(RelationSet)ptr; 
     116            return; 
     117        } 
    111118        super(cast(GObject*)atkRelationSet); 
    112119        this.atkRelationSet = atkRelationSet; 
  • trunk/src/gdk/Display.d

    r480 r506  
    121121            else return; 
    122122        } 
     123        //Check if there already is a D object for this gtk struct 
     124        void* ptr = getDObject(cast(GObject*)gdkDisplay); 
     125        if( ptr !is null ) 
     126        { 
     127            this = cast(Display)ptr; 
     128            return; 
     129        } 
    123130        super(cast(GObject*)gdkDisplay); 
    124131        this.gdkDisplay = gdkDisplay; 
  • trunk/src/gdk/DisplayManager.d

    r480 r506  
    109109            else return; 
    110110        } 
     111        //Check if there already is a D object for this gtk struct 
     112        void* ptr = getDObject(cast(GObject*)gdkDisplayManager); 
     113        if( ptr !is null ) 
     114        { 
     115            this = cast(DisplayManager)ptr; 
     116            return; 
     117        } 
    111118        super(cast(GObject*)gdkDisplayManager); 
    112119        this.gdkDisplayManager = gdkDisplayManager; 
  • trunk/src/gdk/Drawable.d

    r480 r506  
    155155            else return; 
    156156        } 
     157        //Check if there already is a D object for this gtk struct 
     158        void* ptr = getDObject(cast(GObject*)gdkDrawable); 
     159        if( ptr !is null ) 
     160        { 
     161            this = cast(Drawable)ptr; 
     162            return; 
     163        } 
    157164        super(cast(GObject*)gdkDrawable); 
    158165        this.gdkDrawable = gdkDrawable; 
  • trunk/src/gdk/GC.d

    r480 r506  
    137137            else return; 
    138138        } 
     139        //Check if there already is a D object for this gtk struct 
     140        void* ptr = getDObject(cast(GObject*)gdkGC); 
     141        if( ptr !is null ) 
     142        { 
     143            this = cast(GC)ptr; 
     144            return; 
     145        } 
    139146        super(cast(GObject*)gdkGC); 
    140147        this.gdkGC = gdkGC; 
  • trunk/src/gdk/Keymap.d

    r480 r506  
    153153            else return; 
    154154        } 
     155        //Check if there already is a D object for this gtk struct 
     156        void* ptr = getDObject(cast(GObject*)gdkKeymap); 
     157        if( ptr !is null ) 
     158        { 
     159            this = cast(Keymap)ptr; 
     160            return; 
     161        } 
    155162        super(cast(GObject*)gdkKeymap); 
    156163        this.gdkKeymap = gdkKeymap; 
  • trunk/src/gdk/Pixmap.d

    r480 r506  
    113113            else return; 
    114114        } 
     115        //Check if there already is a D object for this gtk struct 
     116        void* ptr = getDObject(cast(GObject*)gdkPixmap); 
     117        if( ptr !is null ) 
     118        { 
     119            this = cast(Pixmap)ptr; 
     120            return; 
     121        } 
    115122        super(cast(GdkDrawable*)gdkPixmap); 
    116123        this.gdkPixmap = gdkPixmap; 
  • trunk/src/gdk/Screen.d

    r480 r506  
    136136            else return; 
    137137        } 
     138        //Check if there already is a D object for this gtk struct 
     139        void* ptr = getDObject(cast(GObject*)gdkScreen); 
     140        if( ptr !is null ) 
     141        { 
     142            this = cast(Screen)ptr; 
     143            return; 
     144        } 
    138145        super(cast(GObject*)gdkScreen); 
    139146        this.gdkScreen = gdkScreen; 
  • trunk/src/gdk/Window.d

    r480 r506  
    250250            else return; 
    251251        } 
     252        //Check if there already is a D object for this gtk struct 
     253        void* ptr = getDObject(cast(GObject*)gdkWindow); 
     254        if( ptr !is null ) 
     255        { 
     256            this = cast(Window)ptr; 
     257            return; 
     258        } 
    252259        super(cast(GdkDrawable*)gdkWindow); 
    253260        this.gdkWindow = gdkWindow; 
  • trunk/src/gdkpixbuf/PixbufAnimation.d

    r480 r506  
    111111            else return; 
    112112        } 
     113        //Check if there already is a D object for this gtk struct 
     114        void* ptr = getDObject(cast(GObject*)gdkPixbufAnimation); 
     115        if( ptr !is null ) 
     116        { 
     117            this = cast(PixbufAnimation)ptr; 
     118            return; 
     119        } 
    113120        super(cast(GObject*)gdkPixbufAnimation); 
    114121        this.gdkPixbufAnimation = gdkPixbufAnimation; 
  • trunk/src/gdkpixbuf/PixbufLoader.d

    r480 r506  
    147147            else return; 
    148148        } 
     149        //Check if there already is a D object for this gtk struct 
     150        void* ptr = getDObject(cast(GObject*)gdkPixbufLoader); 
     151        if( ptr !is null ) 
     152        { 
     153            this = cast(PixbufLoader)ptr; 
     154            return; 
     155        } 
    149156        super(cast(GObject*)gdkPixbufLoader); 
    150157        this.gdkPixbufLoader = gdkPixbufLoader; 
  • trunk/src/gdkpixbuf/PixbufSimpleAnimation.d

    r480 r506  
    104104            else return; 
    105105        } 
     106        //Check if there already is a D object for this gtk struct 
     107        void* ptr = getDObject(cast(GObject*)gdkPixbufSimpleAnim); 
     108        if( ptr !is null ) 
     109        { 
     110            this = cast(PixbufSimpleAnimation)ptr; 
     111            return; 
     112        } 
    106113        super(cast(GObject*)gdkPixbufSimpleAnim); 
    107114        this.gdkPixbufSimpleAnim = gdkPixbufSimpleAnim; 
  • trunk/src/glade/Glade.d

    r480 r506  
    125125            version(Exceptions) throw new Exception("Null gladeXML passed to constructor."); 
    126126            else return; 
     127        } 
     128        //Check if there already is a D object for this gtk struct 
     129        void* ptr = getDObject(cast(GObject*)gladeXML); 
     130        if( ptr !is null ) 
     131        { 
     132            this = cast(Glade)ptr; 
     133            return; 
    127134        } 
    128135        super(cast(GObject*)gladeXML); 
  • trunk/src/gobject/ObjectG.d

    r480 r506  
    161161        { 
    162162            //writefln("ObjectG.this\n"); 
     163             
     164            //Check if there already is a D object for this gtk struct 
     165            void* ptr = getDObject(gObject); 
     166            if( ptr !is null ) 
     167            { 
     168                this = cast(ObjectG)ptr; 
     169                return; 
     170            } 
     171             
    163172            objectGSetDataFull("GObject",cast(void*)this); 
    164173        } 
     
    190199            //writefln("objectg.destroy exit"); 
    191200        } 
     201    } 
     202     
     203    /** 
     204     * Gets a D Object from the objects table of associations. 
     205     * Params: 
     206     *  object = GObject containing the associations. 
     207     * Returns: the D Object if found, or NULL if no such Object exists. 
     208     */ 
     209    public static void* getDObject(GObject* obj) 
     210    { 
     211        //gpointer g_object_get_data(GObject *object, const gchar *key); 
     212        return g_object_get_data(obj, Str.toStringz("GObject")); 
    192213    } 
    193214     
     
    370391    } 
    371392     
    372      
    373393    /** 
    374394     */ 
  • trunk/src/gobject/TypeModule.d

    r480 r506  
    127127            else return; 
    128128        } 
     129        //Check if there already is a D object for this gtk struct 
     130        void* ptr = getDObject(cast(GObject*)gTypeModule); 
     131        if( ptr !is null ) 
     132        { 
     133            this = cast(TypeModule)ptr; 
     134            return; 
     135        } 
    129136        super(cast(GObject*)gTypeModule); 
    130137        this.gTypeModule = gTypeModule; 
  • trunk/src/gtk/AboutDialog.d

    r480 r506  
    135135            else return; 
    136136        } 
     137        //Check if there already is a D object for this gtk struct 
     138        void* ptr = getDObject(cast(GObject*)gtkAboutDialog); 
     139        if( ptr !is null ) 
     140        { 
     141            this = cast(AboutDialog)ptr; 
     142            return; 
     143        } 
    137144        super(cast(GtkDialog*)gtkAboutDialog); 
    138145        this.gtkAboutDialog = gtkAboutDialog; 
  • trunk/src/gtk/AccelGroup.d

    r480 r506  
    125125            else return; 
    126126        } 
     127        //Check if there already is a D object for this gtk struct 
     128        void* ptr = getDObject(cast(GObject*)gtkAccelGroup); 
     129        if( ptr !is null ) 
     130        { 
     131            this = cast(AccelGroup)ptr; 
     132            return; 
     133        } 
    127134        super(cast(GObject*)gtkAccelGroup); 
    128135        this.gtkAccelGroup = gtkAccelGroup; 
  • trunk/src/gtk/AccelLabel.d

    r480 r506  
    145145            else return; 
    146146        } 
     147        //Check if there already is a D object for this gtk struct 
     148        void* ptr = getDObject(cast(GObject*)gtkAccelLabel); 
     149        if( ptr !is null ) 
     150        { 
     151            this = cast(AccelLabel)ptr; 
     152            return; 
     153        } 
    147154        super(cast(GtkLabel*)gtkAccelLabel); 
    148155        this.gtkAccelLabel = gtkAccelLabel; 
  • trunk/src/gtk/AccelMap.d