Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
FreeType
FreeType
Commits
2a98b3c4
Commit
2a98b3c4
authored
Jun 23, 2000
by
David Turner
Browse files
reduced some nasty memory leaks
parent
90f68b72
Changes
6
Hide whitespace changes
Inline
Side-by-side
demos/Makefile
View file @
2a98b3c4
...
...
@@ -161,7 +161,7 @@ else
# The list of demonstration programs to build.
#
# EXES := ftlint ftview fttimer compos ftstring memtest ftmulti
EXES
:=
ftlint ftview
EXES
:=
ftlint ftview
fttimer ftstring memtest ftmulti
ifneq
($(findstring $(PLATFORM),os2 unix win32),)
EXES
+=
ttdebug
...
...
demos/src/memtest.c
View file @
2a98b3c4
...
...
@@ -42,6 +42,12 @@ typedef struct MyBlock
static
MyBlock
my_blocks
[
MAX_RECORDED_BLOCKS
];
static
int
num_my_blocks
=
0
;
static
void
rewind_memory
(
void
)
{
num_my_blocks
=
0
;
}
/* record a new block in the table, check for duplicates too */
static
void
record_my_block
(
void
*
base
,
long
size
)
...
...
@@ -100,13 +106,13 @@ void forget_my_block( void* base )
}
else
{
fprintf
(
stderr
,
"Block at %
08lx
released twice
\n
"
,
(
long
)
base
);
fprintf
(
stderr
,
"Block at %
p
released twice
\n
"
,
base
);
exit
(
1
);
}
}
}
fprintf
(
stderr
,
"Trying to release an unallocated block at %
08lx
\n
"
,
(
long
)
base
);
fprintf
(
stderr
,
"Trying to release an unallocated block at %
p
\n
"
,
base
);
exit
(
1
);
}
...
...
@@ -126,7 +132,7 @@ static
void
my_free
(
FT_Memory
memory
,
void
*
block
)
{
forget_my_block
(
block
);
free
(
block
);
/*
free(block);
WE DO NOT REALLY FREE THE BLOCK */
}
static
...
...
@@ -140,9 +146,16 @@ void* my_realloc( FT_Memory memory,
p
=
my_alloc
(
memory
,
new_size
);
if
(
p
)
{
long
size
;
size
=
cur_size
;
if
(
new_size
<
size
)
size
=
new_size
;
memcpy
(
p
,
block
,
size
);
my_free
(
memory
,
block
);
record_my_block
(
p
,
new_size
);
}
return
p
;
}
...
...
@@ -168,7 +181,7 @@ static void dump_mem( void )
{
if
(
block
->
size
>
0
)
{
fprintf
(
stderr
,
"%
08lx
(%6ld bytes) leaked !!
\n
"
,
(
long
)
block
->
base
,
(
long
)
block
->
size
);
fprintf
(
stderr
,
"%
p
(%6ld bytes) leaked !!
\n
"
,
block
->
base
,
(
long
)
block
->
size
);
bad
=
1
;
}
}
...
...
src/base/ftobjs.c
View file @
2a98b3c4
...
...
@@ -1337,6 +1337,7 @@
else
error
=
FT_Err_Invalid_Handle
;
ft_done_stream
(
&
stream
);
goto
Fail
;
}
else
...
...
@@ -1371,6 +1372,8 @@
}
}
ft_done_stream
(
&
stream
);
/* no driver is able to handle this format */
error
=
FT_Err_Unknown_File_Format
;
goto
Fail
;
...
...
src/truetype/ttgload.c
View file @
2a98b3c4
...
...
@@ -392,8 +392,6 @@
}
}
FORGET_Frame
();
/* clear the touch tags */
for
(
n
=
0
;
n
<
n_points
;
n
++
)
outline
->
tags
[
n
]
&=
FT_Curve_Tag_On
;
...
...
src/type1/t1load.c
View file @
2a98b3c4
...
...
@@ -1245,9 +1245,10 @@
/* copy recorder sub-routines */
T1_Done_Table
(
&
parser
->
table
);
parser
->
subrs
=
parser
->
table
.
block
;
type1
->
subrs
=
parser
->
table
.
elements
;
type1
->
subrs_len
=
parser
->
table
.
lengths
;
parser
->
subrs
=
parser
->
table
.
block
;
type1
->
subrs
=
parser
->
table
.
elements
;
type1
->
subrs_len
=
parser
->
table
.
lengths
;
type1
->
subrs_block
=
parser
->
table
.
block
;
parser
->
state_index
--
;
}
...
...
src/type1/t1tokens.c
View file @
2a98b3c4
...
...
@@ -467,6 +467,11 @@
}
while
(
1
);
/* we must free the field "tokzer.base" if we're in a disk-based */
/* PFB file.. */
if
(
stream
->
read
)
FREE
(
tokzer
->
base
);
tokzer
->
base
=
private
;
tokzer
->
cursor
=
0
;
tokzer
->
limit
=
private_size
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment