Bug fix for race results display

Annick et Jean-Philippe <[email protected]>
Newsgroups gmane.games.torcs.devel
Message-ID <[email protected]>
Hi, all.

This is a small patch that fixes little bugs
around displaying results in race screens
(the name of the car of the driver is often replaced by random chars,
  coming from released string pointers ...).

To apply it,
- get the last CVS revisions of src/libs/raceengineclient/raceresults.cpp
   and src/libs/racescreens/miscscreens.cpp
- cd into the directory that constains src
- patch -p1 <raceResultsCarName.patch

Please, test and tell me.

Cheers,

Jean-Philippe.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

_______________________________________________
Torcs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/torcs-devel
raceResultsCarName.patch (text/x-patch, 2.7 KB)
diff -Naur current/src/libs/racescreens/miscscreens.cpp dev/src/libs/racescreens/miscscreens.cpp >patches/raceResultsCarName.patch
--- current/src/libs/racescreens/miscscreens.cpp	2008-02-24 17:51:29.000000000 +0100
+++ dev/src/libs/racescreens/miscscreens.cpp	2008-05-02 20:49:59.000000000 +0200
@@ -226,11 +226,13 @@
 		sprintf(path, "cars/%s/%s.xml", carName, carName);
 		carHdle = GfParmReadFile(path, GFPARM_RMODE_STD);
 		carName = GfParmGetName(carHdle);
-		GfParmReleaseHandle(carHdle);
 
 		sprintf(path, "%d - %s - (%s)", i + 1, name, carName);
 		GfuiLabelCreate(rmScrHdle, path, GFUI_FONT_MEDIUM_C,
 				x + curRow * dx, y, GFUI_ALIGN_HL_VB, 0);
+
+		GfParmReleaseHandle(carHdle);
+		GfParmReleaseHandle(robhdle);
 	    }
 	    curRow = (curRow + 1) % rows;
 	    y -= 15;
diff -Naur current/src/libs/raceengineclient/raceresults.cpp dev/src/libs/raceengineclient/raceresults.cpp >>patches/raceResultsCarName.patch
--- current/src/libs/raceengineclient/raceresults.cpp	2008-02-24 17:51:28.000000000 +0100
+++ dev/src/libs/raceengineclient/raceresults.cpp	2008-05-02 21:51:23.000000000 +0200
@@ -227,7 +227,6 @@
 	    sprintf(buf, "cars/%s/%s.xml", car->_carName, car->_carName);
 	    carparam = GfParmReadFile(buf, GFPARM_RMODE_STD);
 	    carName = GfParmGetName(carparam);
-	    GfParmReleaseHandle(carparam);
 
 	    GfParmSetStr(results, path, RE_ATTR_CAR, carName);
 	    GfParmSetNum(results, path, RE_ATTR_INDEX, NULL, car->index);
@@ -245,6 +244,8 @@
 	    sprintf(path2, "%s/%s/%d", race, RM_SECT_POINTS, i + 1);
 	    GfParmSetNum(results, path, RE_ATTR_POINTS, NULL,
 			 (int)GfParmGetNum(params, path2, RE_ATTR_POINTS, NULL, 0));
+
+	    GfParmReleaseHandle(carparam);
 	}
 	break;
 
@@ -285,7 +286,6 @@
 	sprintf(buf, "cars/%s/%s.xml", car->_carName, car->_carName);
 	carparam = GfParmReadFile(buf, GFPARM_RMODE_STD);
 	carName = GfParmGetName(carparam);
-	GfParmReleaseHandle(carparam);
 
 	GfParmSetStr(results, path, RE_ATTR_CAR, carName);
 	GfParmSetNum(results, path, RE_ATTR_BEST_LAP_TIME, NULL, car->_bestLapTime);
@@ -295,6 +295,8 @@
 	GfParmSetNum(results, path, RE_ATTR_POINTS, NULL,
 		     (int)GfParmGetNum(params, path2, RE_ATTR_POINTS, NULL, 0));
 	
+	GfParmReleaseHandle(carparam);
+
 	break;
     }
 }
@@ -320,7 +322,6 @@
     sprintf(buf, "cars/%s/%s.xml", car->_carName, car->_carName);
     carparam = GfParmReadFile(buf, GFPARM_RMODE_STD);
     carName = GfParmGetName(carparam);
-    GfParmReleaseHandle(carparam);
 
     printed = 0;
     sprintf(path, "%s/%s/%s/%s", ReInfo->track->name, RE_SECT_RESULTS, race, RE_SECT_RANK);
@@ -344,6 +345,8 @@
 	ReResScreenSetText(buf, i - 1, 1);
     }
     ReInfo->_refreshDisplay = 1;
+
+    GfParmReleaseHandle(carparam);
 }
 
 void
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.