Переглянути джерело

Reference Counting fehler bei schriften behoben

Kolja Strohm 5 роки тому
батько
коміт
3264700ef1

+ 8 - 0
KSGClient/Global/Variablen.cpp

@@ -90,7 +90,11 @@ void releaseVariables()
     if( chatClient )
         chatClient->trenne( 1 );
     if( cmProcessor )
+    {
+        cmProcessor->warteAufThread( 200 );
+        cmProcessor->ende();
         cmProcessor = (ChatMessageProcessor *)cmProcessor->release();
+    }
     if( chatClient )
         chatClient = chatClient->release();
     if( anmeldungClient )
@@ -98,7 +102,11 @@ void releaseVariables()
     if( spielClient )
         spielClient->trenne();
     if( smProcessor )
+    {
+        smProcessor->warteAufThread( 200 );
+        smProcessor->ende();
         smProcessor = (SpielMessageProcessor *)smProcessor->release();
+    }
     if( spielClient )
         spielClient = spielClient->release();
     if( shopClient )

+ 4 - 4
KSGClient/NachLogin/Account/SpielPartner/AccountSpielPartner.cpp

@@ -893,10 +893,10 @@ AccountSpielPartner::AccountSpielPartner( Schrift *zSchrift )
 	initToolTip( gruppAusw, "Wähle Gruppierung aus, nach der die Daten angezeigt werden sollen.", zSchrift, hauptScreen );
 	initToolTip( sortSpalte, "Wähle aus, nach welcher Spalte die\nTabelle sortiert werden soll.", zSchrift, hauptScreen );
 	initToolTip( sortRichtung, "Wähle aus, Ob Aufwärts oder Abwärts sortiert werden soll.", zSchrift, hauptScreen );
-	spielPartnerF->addMember( liste );
-	spielPartnerF->addMember( gruppAusw );
-	spielPartnerF->addMember( sortSpalte );
-	spielPartnerF->addMember( sortRichtung );
+	spielPartnerF->addMember( liste->getThis() );
+	spielPartnerF->addMember( gruppAusw->getThis() );
+	spielPartnerF->addMember( sortSpalte->getThis() );
+	spielPartnerF->addMember( sortRichtung->getThis() );
 	spielPartnerF->setMausEreignis( _ret1ME );
 }
 

+ 0 - 1
KSGClient/NachLogin/Account/Suchen/AccountSuchen.cpp

@@ -59,7 +59,6 @@ AccountSuchen::AccountSuchen( Schrift *schrift )
 	vor->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer );
 	vor->setHintergrundBildZ( weiterB );
 	initToolTip( vor, "Eine Seite weiter blättern.", schrift, hauptScreen );
-    schrift->release();
 	liste->addSpalte( "Weiter" );
 	liste->setSpaltenBreite( "Weiter", 20 );
 }

+ 3 - 3
KSGClient/NachLogin/Chat/ChatLeiste.cpp

@@ -1222,10 +1222,10 @@ ChatLeiste::ChatLeiste( Schrift * zSchrift, Fenster * zNachLoginFenster )
     minMax->setMausEreignisParameter( this );
     minMax->setMausEreignis( chatLeisteMinMaxME );
     initToolTip( minMax, "Chat Leiste minimieren.", zSchrift, hauptScreen );
-    fenster->addMember( minMax );
+    fenster->addMember( minMax->getThis() );
     chatLeiste = new ChatLeisteObj( zSchrift );
-    fenster->addMember( chatLeiste );
-    zNachLoginFenster->addMember( fenster );
+    fenster->addMember( chatLeiste->getThis() );
+    zNachLoginFenster->addMember( fenster->getThis() );
     tickVal = 0;
     animation = 1;
     ref = 1;

+ 0 - 1
KSGClient/NachLogin/MiniGames/Minigames.cpp

@@ -220,7 +220,6 @@ MiniGames::MiniGames( Schrift *zSchrift, Fenster *zNachLoginFenster, int x )
 	dg = 0;
 	mgl = 0;
     mgInitialized = 0;
-	ref = 1;
 	new MGSuchen( (MiniGames*)getThis() );
 }
 

+ 4 - 2
KSGClient/NachLogin/NachLogin.cpp

@@ -98,7 +98,10 @@ void NachLogin::logout() // Setzt die Oberfl
     if( editorFenster )
         editorFenster = (Editor *)editorFenster->release();
     if( titel )
+    {
+        titel->ende();
         titel = (TitelLeiste *)titel->release();
+    }
     if( freunde )
         freunde = (FreundesListe *)freunde->release();
     if( chatLeiste )
@@ -252,8 +255,7 @@ void NachLogin::doMausEreignis( MausEreignis & me )
 }
 
 void NachLogin::doTastaturEreignis( TastaturEreignis & te )
-{
-    if( status == NLASpielVideo )
+{    if( status == NLASpielVideo )
     {
         lockZeichnung();
         if( te.taste == T_F2 && te.id == TE_Release )

+ 1 - 0
KSGClient/NachLogin/Neuigkeiten/Neuigkeiten.cpp

@@ -75,6 +75,7 @@ void KSGSR
 // Inhalt der Neuigkeiten Klasse aus Neuigkeiten.h
 // Konstruktor
 Neuigkeiten::Neuigkeiten( Schrift * zSchrift, Fenster * zNachLoginFenster, int x )
+    : Zeichnung()
 {
     bildschirmGröße = BildschirmGröße();
     pos = Punkt( x, 67 );

+ 1 - 1
KSGClient/NachLogin/Spiele/Gruppe/Gruppe.cpp

@@ -1871,7 +1871,7 @@ void GruppeKarteKSGSAktion( void *p, RCArray< KSGSVariable > * parameter, KSGSVa
 GruppeKarte::GruppeKarte( Schrift * zSchrift )
     : Thread()
 {
-    schrift = zSchrift;
+    schrift = zSchrift->getThis();
     tr = new TextRenderer( schrift->getThis() );
     pos = Punkt( 350, 0 );
     gr = Punkt( 600, 350 );

+ 2 - 0
KSGClient/NachLogin/Spiele/Team Auswahl/TeamAuswahl.cpp

@@ -930,6 +930,8 @@ TeamAuswahl::~TeamAuswahl()
 		liste->release();
 	if( sts )
 		sts->release();
+    if( schrift )
+        schrift->release();
 }
 
 // nicht constant