Bug Summary

File:bitmap/bitmapfunc.c
Location:line 129, column 5
Description:Value stored to 'ret' is never read

Annotated Source Code

1/*
2
3Copyright 1991, 1998 The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included in
12all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21Except as contained in this notice, the name of The Open Group shall not be
22used in advertising or otherwise to promote the sale, use or other dealings
23in this Software without prior written authorization from The Open Group.
24
25*/
26
27/*
28 * Author: Keith Packard, MIT X Consortium
29 */
30
31#ifdef HAVE_CONFIG_H1
32#include <config.h>
33#endif
34
35#include <X11/fonts/fntfilst.h>
36#include <X11/fonts/bitmap.h>
37#include <X11/fonts/fontutil.h>
38#if XFONT_BDFFORMAT1
39#include <X11/fonts/bdfint.h>
40#endif
41#if XFONT_PCFFORMAT1
42#include <X11/fonts/pcf.h>
43#endif
44#if XFONT_SNFFORMAT
45#include "snfstr.h"
46#endif
47
48#if XFONT_PCFFORMAT1 || XFONT_SNFFORMAT || XFONT_BDFFORMAT1
49typedef struct _BitmapFileFunctions {
50 int (*ReadFont) (FontPtr /* pFont */, FontFilePtr /* file */,
51 int /* bit */, int /* byte */,
52 int /* glyph */, int /* scan */);
53 int (*ReadInfo) ( FontInfoPtr /* pFontInfo */,
54 FontFilePtr /* file */ );
55} BitmapFileFunctionsRec, *BitmapFileFunctionsPtr;
56
57static int BitmapGetRenderIndex(FontRendererPtr renderer);
58
59/*
60 * the readers[] and renderers[] arrays must be in the same order,
61 * and also in the same order as scale[] and find_scale[] in bitscale.c
62 *
63 */
64static BitmapFileFunctionsRec readers[] = {
65#if XFONT_PCFFORMAT1
66 { pcfReadFont, pcfReadFontInfo} ,
67 { pcfReadFont, pcfReadFontInfo} ,
68# ifdef X_GZIP_FONT_COMPRESSION1
69 { pcfReadFont, pcfReadFontInfo} ,
70# endif
71# ifdef X_BZIP2_FONT_COMPRESSION
72 { pcfReadFont, pcfReadFontInfo} ,
73# endif
74#endif
75#if XFONT_SNFFORMAT
76 { snfReadFont, snfReadFontInfo},
77 { snfReadFont, snfReadFontInfo},
78# ifdef X_GZIP_FONT_COMPRESSION1
79 { snfReadFont, snfReadFontInfo} ,
80# endif
81# ifdef X_BZIP2_FONT_COMPRESSION
82 { snfReadFont, snfReadFontInfo} ,
83# endif
84#endif
85#if XFONT_BDFFORMAT1
86 { bdfReadFont, bdfReadFontInfo} ,
87 { bdfReadFont, bdfReadFontInfo} ,
88# ifdef X_GZIP_FONT_COMPRESSION1
89 { bdfReadFont, bdfReadFontInfo} ,
90# endif
91# ifdef X_BZIP2_FONT_COMPRESSION
92 { bdfReadFont, bdfReadFontInfo} ,
93# endif
94#endif
95};
96
97
98#define CAPABILITIES(0x1 | 0x2) (CAP_MATRIX0x1 | CAP_CHARSUBSETTING0x2)
99
100static int
101BitmapOpenBitmap (FontPathElementPtr fpe, FontPtr *ppFont, int flags,
102 FontEntryPtr entry, char *fileName,
103 fsBitmapFormat format, fsBitmapFormatMask fmask,
104 FontPtr non_cachable_font) /* We don't do licensing */
105{
106 FontFilePtr file;
107 FontPtr pFont;
108 int i;
109 int ret;
110 int bit,
111 byte,
112 glyph,
113 scan,
114 image;
115
116 i = BitmapGetRenderIndex(entry->u.bitmap.renderer);
117 file = FontFileOpen (fileName);
118 if (!file)
119 return BadFontName83;
120 if (!(pFont = CreateFontRec())) {
121 fprintf(stderr__stderrp, "Error: Couldn't allocate pFont (%ld)\n",
122 (unsigned long)sizeof(FontRec));
123 FontFileClose (file);
124 return AllocError80;
125 }
126 /* set up default values */
127 FontDefaultFormat(&bit, &byte, &glyph, &scan);
128 /* get any changes made from above */
129 ret = CheckFSFormat(format, fmask, &bit, &byte, &scan, &glyph, &image);
Value stored to 'ret' is never read
130
131 /* Fill in font record. Data format filled in by reader. */
132 pFont->refcnt = 0;
133
134 ret = (*readers[i].ReadFont) (pFont, file, bit, byte, glyph, scan);
135
136 FontFileClose (file);
137 if (ret != Successful85) {
138 free(pFont);
139 } else {
140 *ppFont = pFont;
141 }
142 return ret;
143}
144
145static int
146BitmapGetInfoBitmap (FontPathElementPtr fpe, FontInfoPtr pFontInfo,
147 FontEntryPtr entry, char *fileName)
148{
149 FontFilePtr file;
150 int i;
151 int ret;
152 FontRendererPtr renderer;
153
154 renderer = FontFileMatchRenderer (fileName);
155 if (!renderer)
156 return BadFontName83;
157 i = BitmapGetRenderIndex(renderer);
158 file = FontFileOpen (fileName);
159 if (!file)
160 return BadFontName83;
161 ret = (*readers[i].ReadInfo) (pFontInfo, file);
162 FontFileClose (file);
163 return ret;
164}
165
166static FontRendererRec renderers[] = {
167#if XFONT_PCFFORMAT1
168 { ".pcf", 4, BitmapOpenBitmap, BitmapOpenScalable,
169 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
170 CAPABILITIES(0x1 | 0x2) },
171 { ".pcf.Z", 6, BitmapOpenBitmap, BitmapOpenScalable,
172 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
173 CAPABILITIES(0x1 | 0x2) },
174# ifdef X_GZIP_FONT_COMPRESSION1
175 { ".pcf.gz", 7,
176 BitmapOpenBitmap, BitmapOpenScalable,
177 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
178 CAPABILITIES(0x1 | 0x2) },
179# endif
180# ifdef X_BZIP2_FONT_COMPRESSION
181 { ".pcf.bz2", 8,
182 BitmapOpenBitmap, BitmapOpenScalable,
183 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
184 CAPABILITIES(0x1 | 0x2) },
185# endif
186#endif
187#if XFONT_SNFFORMAT
188 { ".snf", 4, BitmapOpenBitmap, BitmapOpenScalable,
189 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
190 CAPABILITIES(0x1 | 0x2) },
191 { ".snf.Z", 6, BitmapOpenBitmap, BitmapOpenScalable,
192 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
193 CAPABILITIES(0x1 | 0x2) },
194# ifdef X_GZIP_FONT_COMPRESSION1
195 { ".snf.gz", 7, BitmapOpenBitmap, BitmapOpenScalable,
196 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
197 CAPABILITIES(0x1 | 0x2) },
198# endif
199# ifdef X_BZIP2_FONT_COMPRESSION
200 { ".snf.bz2", 8, BitmapOpenBitmap, BitmapOpenScalable,
201 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
202 CAPABILITIES(0x1 | 0x2) },
203# endif
204#endif
205#if XFONT_BDFFORMAT1
206 { ".bdf", 4, BitmapOpenBitmap, BitmapOpenScalable,
207 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
208 CAPABILITIES(0x1 | 0x2) },
209 { ".bdf.Z", 6, BitmapOpenBitmap, BitmapOpenScalable,
210 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
211 CAPABILITIES(0x1 | 0x2) },
212# ifdef X_GZIP_FONT_COMPRESSION1
213 { ".bdf.gz", 7, BitmapOpenBitmap, BitmapOpenScalable,
214 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
215 CAPABILITIES(0x1 | 0x2) },
216# endif
217# ifdef X_BZIP2_FONT_COMPRESSION
218 { ".bdf.bz2", 8, BitmapOpenBitmap, BitmapOpenScalable,
219 BitmapGetInfoBitmap, BitmapGetInfoScalable, 0,
220 CAPABILITIES(0x1 | 0x2) },
221# endif
222#endif
223};
224
225#define numRenderers(sizeof renderers / sizeof renderers[0]) (sizeof renderers / sizeof renderers[0])
226
227void
228BitmapRegisterFontFileFunctions (void)
229{
230 int i;
231
232 for (i = 0; i < numRenderers(sizeof renderers / sizeof renderers[0]); i++)
233 FontFileRegisterRenderer (&renderers[i]);
234}
235
236/*
237 * compute offset into renderers array - used to find the font reader,
238 * the font info reader, and the bitmap scaling routine. All users
239 * of this routine must be kept in step with the renderer array.
240 */
241static int
242BitmapGetRenderIndex(FontRendererPtr renderer)
243{
244 return renderer - renderers;
245}
246
247#else
248void
249BitmapRegisterFontFileFunctions (void)
250{
251 /* nothing to do */
252}
253#endif /* XFONT_PCFFORMAT || XFONT_SNFFORMAT || XFONT_BDFFORMAT */