summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParth Wazurkar <parthwazurkar@gmail.com>2018-08-01 00:28:10 +0530
committerParth Wazurkar <parthwazurkar@gmail.com>2018-08-01 00:28:10 +0530
commit3d5f300f0ccdbdcdf4e101757f06d6201856fd02 (patch)
tree20d0baff406968fd8256ef160c4f42a5d58009d6
parent1931328a3494e256464d8e88de82acc6c66adcf3 (diff)
downloadfreetype2-3d5f300f0ccdbdcdf4e101757f06d6201856fd02.tar.gz
[pk] Improve error handling.
* src/pk/pklib.c(pk_load_font): Do it.
-rw-r--r--src/pk/pklib.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/pk/pklib.c b/src/pk/pklib.c
index 761c02272..09a62e507 100644
--- a/src/pk/pklib.c
+++ b/src/pk/pklib.c
@@ -306,7 +306,6 @@ unsigned char bits_table[] = {
pre = READ_UINT1( stream );
if (pre != PK_PRE)
{
- FT_ERROR(( "pk_load_font: missing PK_PRE(247) field\n" ));
error = FT_THROW( Unknown_File_Format );
goto Exit;
}
@@ -314,7 +313,6 @@ unsigned char bits_table[] = {
id = READ_UINT1( stream );
if (id != PK_ID)
{
- FT_ERROR(( "pk_load_font: missing PK_ID(89) field\n" ));
error = FT_THROW( Unknown_File_Format );
goto Exit;
}
@@ -512,7 +510,7 @@ unsigned char bits_table[] = {
if (pk_read_14(stream, dny_f, bw, rs, &(go->bm_table[index]), cc) < 0)
{
/* vf_error = VF_ERR_ILL_FONT_FILE; (FOR TRACING) */
- error = FT_THROW( Invalid_File_Format );
+ error = FT_THROW( Unknown_File_Format );
goto Exit;
}
}
@@ -521,7 +519,7 @@ unsigned char bits_table[] = {
if (pk_read_n14(stream, dny_f, bw, rs, &(go->bm_table[index]), cc) < 0)
{
/* vf_error = VF_ERR_ILL_FONT_FILE; (FOR TRACING) */
- error = FT_THROW( Invalid_File_Format );
+ error = FT_THROW( Unknown_File_Format );
goto Exit;
}
}
@@ -539,13 +537,16 @@ unsigned char bits_table[] = {
return error;
Exit:
- for (i = 0; i < nchars; i++)
+ if (go != NULL)
{
- if (go->bm_table[i].bitmap != NULL)
- FT_FREE(go->bm_table[i].bitmap);
+ for (i = 0; i < nchars; i++)
+ {
+ if (go->bm_table[i].bitmap != NULL)
+ FT_FREE(go->bm_table[i].bitmap);
+ }
+ FT_FREE(go->bm_table);
+ FT_FREE(go);
}
- FT_FREE(go->bm_table);
- FT_FREE(go);
return error;
}