IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

Faut'il lib�rer un GtkTextBuffer ?


Sujet :

GTK+ avec C & C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Juillet 2012
    Messages
    56
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 56
    Par d�faut Faut'il lib�rer un GtkTextBuffer ?
    Bonjour,

    J'ai fait un �diteur multi-fichiers. Quand l'utilisateur ferme un fichier, j'aimerais savoir si je doit lib�rer avec la fonction g_free(), ou une autre fonction, le GtkTextBuffer ou GtkSourceBuffer ?

    Comme j'utilise gtksourceview, la question est la m�me pour le GtkSourceLanguageManager et le GtkSourceLanguage, associ� au buffer ?

    Je suppose aussi qu'il suffit d'appeler la fonction gtk_widget_destroy sur l'onglet pour que tous les widgets contenus dans l'onglet soient d�truits eux-aussi ? Ou alors il faut les d�truire s�par�ment ?

    Voici mon code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
      g_free(sBuf); // libération du buffer texte
      g_free(lm); // libération du language manager
      g_free(language); // libération du langage
      gtk_widget_destroy(tab); // destruction de l'onglet et de tous les childs

  2. #2
    Expert confirm�
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    F�vrier 2008
    Messages
    2 315
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par d�faut
    GtkSourceView h�rite de GtkTextView. Donc � priori il n'est pas besoin de lib�rer le GtkTextBuffer, sauf si c'est toi qui a fournit le GtkTextBuffer.

    Extrait de la doc. offcielle de la fonction gtk_text_view_set_buffer (); :
    void gtk_text_view_set_buffer (GtkTextView *text_view, GtkTextBuffer *buffer);

    Sets buffer as the buffer being displayed by text_view . The previous buffer displayed by the text view is unreferenced, and a reference is added to buffer . If you owned a reference to buffer before passing it to this function, you must remove that reference yourself; GtkTextView will not �adopt� it.

  3. #3
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Juillet 2012
    Messages
    56
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 56
    Par d�faut
    Merci.

    Mais j'ai quand m�me un probl�me. A chaque fois que j'ouvre un nouvel onglet, la taille en m�moire de mon programme augmente. Par contre, quand je ferme un onglet, la taille en m�moire ne diminue pas. R�sultat, au cours de l'utilisation, mon programme prend de plus en plus de place. L'augmentation de m�moire est minime, environ 0,2 Mo � chaque nouvel onglet, mais si il y a un moyen de r�gler le probl�me ?

    EDIT:
    En utilisant g_object_unref() au lieu de g_free(), �a marche mieux, mais la taille finit quand m�me par augmenter plus lentement.

  4. #4
    Expert confirm�
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    F�vrier 2008
    Messages
    2 315
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par d�faut
    Ins�res-tu un GtkTextBuffer perso ou bien utilises-tu celui cr�� par d�faut lors de l'instanciation d'un GtkSourceView ?

  5. #5
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Juillet 2012
    Messages
    56
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 56
    Par d�faut
    J'ins�re un GtkTextBuffer perso, et je cr�e le GtkSourceView avec la fonction gtk_source_view_new_with_buffer(GtkSourceBuffer *buffer).

    A chaque onglet ferm�, je d�truit le buffer avec g_object_unref().

  6. #6
    Expert confirm�
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    F�vrier 2008
    Messages
    2 315
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par d�faut
    Bien. Je dirais alors que les 200Ko sont perdus par Gtk.

    D'autres pourront infirmer cette d�claration si je suis dans l'erreur.

Discussions similaires

  1. [dll] lib�rer une dll apres utilisation
    Par polo54 dans le forum API standards et tierces
    R�ponses: 12
    Dernier message: 11/07/2009, 22h48
  2. Faut t'il se specialiser ?
    Par vedder dans le forum Emploi
    R�ponses: 14
    Dernier message: 17/07/2005, 12h54
  3. [download] que me faut-il ??
    Par terziann dans le forum D�buter
    R�ponses: 2
    Dernier message: 03/07/2003, 15h58
  4. R�ponses: 13
    Dernier message: 11/05/2003, 13h25
  5. Ce qu'il faut sous la main.
    Par ShinMei dans le forum DirectX
    R�ponses: 2
    Dernier message: 18/01/2003, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo