Seite 1 von 1

Check für Referenz in embedded Python

Verfasst: Samstag 27. September 2008, 20:43
von DonnerCobra
Hi! :)

Ich habe eine kurze Frage, und zwar habe ich Python in meine App eingebettet und ein kleines Problem. Ich habe eine Klasse gewrappt und demnach ist im struct ein Pointer zum Objekt vorhanden.

Um es zu vereinfachen: Stelt euch vor das App ist Photoshop und ich habe die Klasse "Ebene" gewrappt. Ich kann also eine Ebene per Python erzeugen. Python besitzt das Objekt also und ist dafür zuständig beim refcount=0 das Objekt zu löschen.

Jetzt erzeuge ich also eine Ebene und übergebe diese an Photoshop das sie im aktuellen Dokument vorhanden ist. Jetzt hat Photoshop den Besitz des Objektes. Wenn ich die Ebene jetzt als User außerhalb vo Python und selbst in Photshop lösche, wird automatisch der Pointer im struct auf NULL gesetzt, das habe ich soweit erreicht. Soweit so gut, jetzt möchte ich aber nicht in jeder Methode des Python Layer Objects auf NULL checken, sondern hoffe, dass ich eventuell eine Methode im PyTypeObject angeben kann, die dauernd ausgeführt wird, bevor ich ein eine Refernez benutze.

Zum Beispiel:

Code: Alles auswählen

PyObject* CheckForNull(LayerObject* self)
{
      if(self->obj==NULL)
         Py_RETURN_NONE
      else
        return (PyObject*)self;
}
Das hieße, dass ich von der Referenz den Typ auf None setzen könnte, und ich mir sparen könnte, bei allen hunderten von Methoden auf NULL zu checken.

Hat irgendeiner eine Idee? ICH DANKE EUCH!

Verfasst: Sonntag 28. September 2008, 21:43
von DonnerCobra
hi, hat keiner eine idee?

Verfasst: Montag 29. September 2008, 07:58
von birkenfeld
Nur die, die du schon im IRC nicht hören wolltest...