src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheSave, FcDirCacheConsume,

FcDirCacheWrite)
Check I/O call return values and eliminate unused variable warnings.
reviewed by: plam
This commit is contained in:
Patrick Lam 2006-02-05 02:57:21 +00:00
parent c4c47a7654
commit 68355f3877
4 changed files with 67 additions and 21 deletions

View File

@ -1,3 +1,16 @@
2006-02-03 Takashi IWAI <tiwai@suse.de>
reviewed by: plam
* fc-cat/fc-cat.c (FcCacheGlobalFileReadAndPrint, main,
FcCacheFileRead):
* src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheSave,
FcDirCacheConsume, FcDirCacheWrite)
* src/fcxml.c (FcConfigMessage):
Check I/O call return values and eliminate unused variable
warnings.
2006-02-03 Takashi Iwai <tiwai@suse.de>
reviewed by: plam

View File

@ -196,7 +196,7 @@ FcCacheGlobalFileReadAndPrint (FcFontSet * set, FcStrSet *dirs, char *cache_file
while (1)
{
char * dir, * ls;
char * dir;
FcCacheReadString (fd, name_buf, sizeof (name_buf));
if (!strlen(name_buf))
break;
@ -241,7 +241,6 @@ FcCacheFileRead (FcFontSet * set, FcStrSet *dirs, char *cache_file)
{
int fd;
char * current_arch_machine_name;
char candidate_arch_machine_name[9+MACHINE_SIGNATURE_SIZE];
off_t current_arch_start = 0;
char subdirName[FC_MAX_FILE_LEN + 1 + 12 + 1];
static char name_buf[8192], *dir;
@ -411,7 +410,7 @@ main (int argc, char **argv)
if (i >= argc)
usage (argv[0]);
if (name_buf = FcCacheFileRead (fs, dirs, argv[i]))
if ((name_buf = FcCacheFileRead (fs, dirs, argv[i])) != 0)
FcCachePrintSet (fs, dirs, name_buf);
else
{

View File

@ -251,10 +251,19 @@ FcGlobalCacheLoad (FcGlobalCache *cache,
(config_time.set && cache_stat.st_mtime < config_time.time))
{
FcCache md;
off_t off;
FcStrSetAdd (staleDirs, FcStrCopy ((FcChar8 *)name_buf));
read (cache->fd, &md, sizeof (FcCache));
lseek (cache->fd, FcCacheNextOffset (lseek(cache->fd, 0, SEEK_CUR)) + md.count, SEEK_SET);
if (read (cache->fd, &md, sizeof (FcCache)) != sizeof(FcCache))
{
perror ("read metadata");
goto bail1;
}
off = FcCacheNextOffset (lseek(cache->fd, 0, SEEK_CUR)) + md.count;
if (lseek (cache->fd, off, SEEK_SET) != off) {
perror ("lseek");
goto bail1;
}
continue;
}
@ -468,6 +477,7 @@ FcGlobalCacheSave (FcGlobalCache *cache,
if (dir->name)
{
const char * d = (const char *)FcConfigNormalizeFontDir (config, (const FcChar8 *)dir->name);
off_t off;
FcCacheWriteString (fd, d);
@ -475,9 +485,25 @@ FcGlobalCacheSave (FcGlobalCache *cache,
FcCacheWriteString (fd, (char *)dir->subdirs->strs[i]);
FcCacheWriteString (fd, "");
write (fd, &dir->metadata, sizeof(FcCache));
lseek (fd, FcCacheNextOffset (lseek(fd, 0, SEEK_CUR)), SEEK_SET);
write (fd, dir->ent, dir->metadata.count);
if (write (fd, &dir->metadata, sizeof(FcCache)) != sizeof(FcCache))
{
perror ("write metadata");
free (dir->ent);
continue;
}
off = FcCacheNextOffset (lseek(fd, 0, SEEK_CUR));
if (lseek (fd, off, SEEK_SET) != off)
{
perror ("lseek");
free (dir->ent);
continue;
}
if (write (fd, dir->ent, dir->metadata.count) != dir->metadata.count)
{
perror ("write dirent");
free (dir->ent);
continue;
}
free (dir->ent);
}
}
@ -1025,7 +1051,8 @@ FcDirCacheConsume (int fd, const char * dir, FcFontSet *set, FcConfig *config)
void * current_dir_block;
off_t pos;
read(fd, &metadata, sizeof(FcCache));
if (read(fd, &metadata, sizeof(FcCache)) != sizeof(FcCache))
return FcFalse;
if (metadata.magic != FC_CACHE_MAGIC)
return FcFalse;
@ -1238,11 +1265,18 @@ FcDirCacheWrite (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir)
FcCacheWriteString (fd, (char *)dirs->strs[i]);
FcCacheWriteString (fd, "");
write (fd, &metadata, sizeof(FcCache));
if (write (fd, &metadata, sizeof(FcCache)) != sizeof(FcCache)) {
perror("write metadata");
goto bail5;
}
if (metadata.count)
{
lseek (fd, FcCacheNextOffset (lseek(fd, 0, SEEK_END)), SEEK_SET);
write (fd, current_dir_block, metadata.count);
off_t off = FcCacheNextOffset (lseek(fd, 0, SEEK_END));
if (lseek (fd, off, SEEK_SET) != off)
perror("lseek");
else if (write (fd, current_dir_block, metadata.count) !=
metadata.count)
perror("write current_dir_block");
free (current_dir_block);
}

View File

@ -493,10 +493,10 @@ FcConfigMessage (FcConfigParse *parse, FcConfigSeverity severe, const char *fmt,
{
if (parse->name)
fprintf (stderr, "Fontconfig %s: \"%s\", line %d: ", s,
parse->name, XML_GetCurrentLineNumber (parse->parser));
parse->name, (int)XML_GetCurrentLineNumber (parse->parser));
else
fprintf (stderr, "Fontconfig %s: line %d: ", s,
XML_GetCurrentLineNumber (parse->parser));
(int)XML_GetCurrentLineNumber (parse->parser));
if (severe >= FcSevereError)
parse->error = FcTrue;
}