Gentoo Archives: gentoo-commits

From: "Michael Sterrett (mr_bones_)" <mr_bones_@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in games-fps/nexuiz/files: nexuiz-2.5-memory-leak.patch
Date: Thu, 09 Apr 2009 04:54:01
Message-Id: E1LrmFy-00037X-Hz@stork.gentoo.org
1 mr_bones_ 09/04/09 04:52:54
2
3 Added: nexuiz-2.5-memory-leak.patch
4 Log:
5 version bump - ebuild submitted by Merlijn Hofstra and Tomáš Chvátal (bug #264794)
6 (Portage version: 2.1.6.7/cvs/Linux i686)
7
8 Revision Changes Path
9 1.1 games-fps/nexuiz/files/nexuiz-2.5-memory-leak.patch
10
11 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/games-fps/nexuiz/files/nexuiz-2.5-memory-leak.patch?rev=1.1&view=markup
12 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/games-fps/nexuiz/files/nexuiz-2.5-memory-leak.patch?rev=1.1&content-type=text/plain
13
14 Index: nexuiz-2.5-memory-leak.patch
15 ===================================================================
16 Index: sv_main.c
17 ===================================================================
18 --- sv_main.c
19 +++ sv_main.c
20 @@ -800,7 +800,7 @@
21 sb.data = (unsigned char *) buf;
22 sb.maxsize = sizeof(buf);
23 i = 0;
24 - while(MakeDownloadPacket(sv.csqc_progname, sv.csqc_progdata, sv.csqc_progsize, sv.csqc_progcrc, i++, &sb, sv.protocol))
25 + while(MakeDownloadPacket(sv.csqc_progname, svs.csqc_progdata, sv.csqc_progsize, sv.csqc_progcrc, i++, &sb, sv.protocol))
26 SV_WriteDemoMessage(client, &sb, false);
27 }
28
29 @@ -2234,9 +2234,9 @@
30 Con_DPrintf("Downloading %s to %s\n", host_client->download_name, host_client->name);
31
32 if(host_client->download_deflate)
33 - host_client->download_file = FS_FileFromData(sv.csqc_progdata_deflated, sv.csqc_progsize_deflated, true);
34 + host_client->download_file = FS_FileFromData(svs.csqc_progdata_deflated, svs.csqc_progsize_deflated, true);
35 else
36 - host_client->download_file = FS_FileFromData(sv.csqc_progdata, sv.csqc_progsize, true);
37 + host_client->download_file = FS_FileFromData(svs.csqc_progdata, sv.csqc_progsize, true);
38
39 // no, no space is needed between %s and %s :P
40 Host_ClientCommands("\ncl_downloadbegin %i %s%s\n", (int)FS_FileSize(host_client->download_file), host_client->download_name, extensions);
41 @@ -2638,37 +2638,37 @@
42 {
43 fs_offset_t progsize;
44
45 - if(sv.csqc_progdata)
46 + if(svs.csqc_progdata)
47 {
48 Con_DPrintf("Unloading old CSQC data.\n");
49 - Mem_Free(sv.csqc_progdata);
50 - if(sv.csqc_progdata_deflated)
51 - Mem_Free(sv.csqc_progdata_deflated);
52 + Mem_Free(svs.csqc_progdata);
53 + if(svs.csqc_progdata_deflated)
54 + Mem_Free(svs.csqc_progdata_deflated);
55 }
56
57 - sv.csqc_progdata = NULL;
58 - sv.csqc_progdata_deflated = NULL;
59 + svs.csqc_progdata = NULL;
60 + svs.csqc_progdata_deflated = NULL;
61
62 Con_Print("Loading csprogs.dat\n");
63
64 sv.csqc_progname[0] = 0;
65 - sv.csqc_progdata = FS_LoadFile(csqc_progname.string, sv_mempool, false, &progsize);
66 + svs.csqc_progdata = FS_LoadFile(csqc_progname.string, sv_mempool, false, &progsize);
67
68 if(progsize > 0)
69 {
70 size_t deflated_size;
71
72 sv.csqc_progsize = (int)progsize;
73 - sv.csqc_progcrc = CRC_Block(sv.csqc_progdata, progsize);
74 + sv.csqc_progcrc = CRC_Block(svs.csqc_progdata, progsize);
75 strlcpy(sv.csqc_progname, csqc_progname.string, sizeof(sv.csqc_progname));
76 Con_Printf("server detected csqc progs file \"%s\" with size %i and crc %i\n", sv.csqc_progname, sv.csqc_progsize, sv.csqc_progcrc);
77
78 Con_Print("Compressing csprogs.dat\n");
79 //unsigned char *FS_Deflate(const unsigned char *data, size_t size, size_t *deflated_size, int level, mempool_t *mempool);
80 - sv.csqc_progdata_deflated = FS_Deflate(sv.csqc_progdata, progsize, &deflated_size, -1, sv_mempool);
81 - sv.csqc_progsize_deflated = (int)deflated_size;
82 + svs.csqc_progdata_deflated = FS_Deflate(svs.csqc_progdata, progsize, &deflated_size, -1, sv_mempool);
83 + svs.csqc_progsize_deflated = (int)deflated_size;
84 Con_Printf("Deflated: %g%%\n", 100.0 - 100.0 * (deflated_size / (float)progsize));
85 - Con_DPrintf("Uncompressed: %u\nCompressed: %u\n", (unsigned)sv.csqc_progsize, (unsigned)sv.csqc_progsize_deflated);
86 + Con_DPrintf("Uncompressed: %u\nCompressed: %u\n", (unsigned)sv.csqc_progsize, (unsigned)svs.csqc_progsize_deflated);
87 }
88 }
89
90 Index: jpeg.c
91 ===================================================================
92 --- jpeg.c (revision 8850)
93 +++ jpeg.c (revision 8853)
94 @@ -1047,6 +1047,8 @@
95 // try to compress it to JPEG
96 *buf = Z_Malloc(maxsize);
97 *size = JPEG_SaveImage_to_Buffer((char *) *buf, maxsize, image_width, image_height, newimagedata);
98 + Mem_Free(newimagedata);
99 +
100 if(!*size)
101 {
102 Z_Free(*buf);
103 Index: server.h
104 ===================================================================
105 --- server.h (revision 8850)
106 +++ server.h (revision 8853)
107 @@ -48,6 +48,12 @@
108 float perf_acc_offset_squared;
109 float perf_acc_offset_max;
110 int perf_acc_offset_samples;
111 +
112 + // csqc stuff
113 + unsigned char *csqc_progdata;
114 + size_t csqc_progsize_deflated;
115 + unsigned char *csqc_progdata_deflated;
116 +
117 } server_static_t;
118
119 //=============================================================================
120 @@ -87,9 +93,6 @@
121 int csqc_progcrc; // -1 = no progs
122 int csqc_progsize; // -1 = no progs
123 char csqc_progname[MAX_QPATH]; // copied from csqc_progname at level start
124 - unsigned char *csqc_progdata;
125 - size_t csqc_progsize_deflated;
126 - unsigned char *csqc_progdata_deflated;
127
128 // collision culling data
129 world_t world;