Ensure pointers are put back to NULL when freed.
--Cette ligne, et les suivantes ci-dessous, seront ignorées-- M trunk/palette.c M trunk/init.c M trunk/engine.c M trunk/filesel.c M trunk/miscfileformats.c M trunk/pages.c M trunk/brush_ops.c M trunk/op_c.c M trunk/operatio.c M trunk/brush.c M trunk/loadsave.c M trunk/graph.c M trunk/fileformats.c M trunk/main.c git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1277 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
04d7359ef5
commit
b36dee613e
9
brush.c
9
brush.c
@ -914,6 +914,7 @@ void Outline_brush(void)
|
||||
Brush_offset_Y=(Brush_height>>1);
|
||||
|
||||
free(temp); // Libération de l'ancienne brosse
|
||||
temp = NULL;
|
||||
|
||||
// Réallocation d'un buffer de Smear
|
||||
free(Smear_brush);
|
||||
@ -1026,6 +1027,7 @@ void Nibble_brush(void)
|
||||
Brush_offset_Y=(Brush_height>>1);
|
||||
|
||||
free(temp); // Libération de l'ancienne brosse
|
||||
temp = NULL;
|
||||
|
||||
// Réallocation d'un buffer de Smear
|
||||
free(Smear_brush);
|
||||
@ -1196,6 +1198,7 @@ void Stretch_brush(short x1, short y1, short x2, short y2)
|
||||
|
||||
// Free some memory
|
||||
free(Smear_brush);
|
||||
Smear_brush = NULL;
|
||||
|
||||
if ((new_brush=((byte *)malloc(new_brush_width*new_brush_height))))
|
||||
{
|
||||
@ -1507,6 +1510,7 @@ void Distort_brush(short x1, short y1, short x2, short y2, short x3, short y3, s
|
||||
// Out of memory while allocating new brush
|
||||
Error(0);
|
||||
free(new_smear_brush);
|
||||
new_smear_brush = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1767,6 +1771,8 @@ void Compute_quad_texture(int x1,int y1,int xt1,int yt1,
|
||||
free(ScanY_Yt[1]);
|
||||
free(ScanY_X[0]);
|
||||
free(ScanY_X[1]);
|
||||
|
||||
ScanY_Xt[0] = ScanY_Xt[1] = ScanY_Yt[0] = ScanY_Yt[1] = ScanY_X[0] = ScanY_X[1] = NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -1807,6 +1813,7 @@ void Rotate_brush(float angle)
|
||||
new_brush_height=y_max+1-y_min;
|
||||
|
||||
free(Smear_brush); // On libère un peu de mémoire
|
||||
Smear_brush = NULL;
|
||||
|
||||
if ((new_brush=((byte *)malloc(new_brush_width*new_brush_height))))
|
||||
{
|
||||
@ -1929,6 +1936,8 @@ void Draw_quad_texture_preview(int x1,int y1,int xt1,int yt1,
|
||||
free(ScanY_Yt[1]);
|
||||
free(ScanY_X[0]);
|
||||
free(ScanY_X[1]);
|
||||
|
||||
ScanY_Xt[0] = ScanY_Xt[1] = ScanY_Yt[0] = ScanY_Yt[1] = ScanY_X[0] = ScanY_X[1] = NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -507,6 +507,7 @@ void Polybrush_12_8(void)
|
||||
|
||||
Capture_brush_with_lasso(Polyfill_number_of_points,Polyfill_table_of_points,click==RIGHT_SIDE);
|
||||
free(Polyfill_table_of_points);
|
||||
Polyfill_table_of_points = NULL;
|
||||
|
||||
// On raffiche l'écran pour effacer les traits en xor et pour raffraichir
|
||||
// l'écran si on a découpé une partie de l'image en prenant la brosse.
|
||||
|
||||
1
engine.c
1
engine.c
@ -1988,6 +1988,7 @@ void Close_popup(void)
|
||||
else
|
||||
{
|
||||
free(Window_background[Windows_open-1]);
|
||||
Window_background[Windows_open-1] = NULL;
|
||||
Windows_open--;
|
||||
|
||||
Paintbrush_hidden=Paintbrush_hidden_before_window;
|
||||
|
||||
@ -125,6 +125,7 @@ void Load_IMG(T_IO_Context * context)
|
||||
}
|
||||
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
else
|
||||
File_error=1;
|
||||
@ -642,6 +643,7 @@ void Load_LBM(T_IO_Context * context)
|
||||
File_error=2;
|
||||
}
|
||||
free(LBM_buffer);
|
||||
LBM_buffer = NULL;
|
||||
}
|
||||
else
|
||||
{ // compressé
|
||||
@ -684,6 +686,7 @@ void Load_LBM(T_IO_Context * context)
|
||||
}
|
||||
|
||||
free(LBM_buffer);
|
||||
LBM_buffer = NULL;
|
||||
/*Close_lecture();*/
|
||||
}
|
||||
}
|
||||
@ -703,6 +706,7 @@ void Load_LBM(T_IO_Context * context)
|
||||
File_error=2;
|
||||
}
|
||||
free(LBM_buffer);
|
||||
LBM_buffer = NULL;
|
||||
}
|
||||
else
|
||||
{ // compressé
|
||||
@ -1200,6 +1204,7 @@ void Load_BMP(T_IO_Context * context)
|
||||
File_error=2;
|
||||
}
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
break;
|
||||
|
||||
case 1 : // Compression RLE 8 bits
|
||||
@ -1418,6 +1423,7 @@ void Load_BMP(T_IO_Context * context)
|
||||
|
||||
}
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
fclose(file);
|
||||
}
|
||||
}
|
||||
@ -2020,6 +2026,7 @@ void Load_GIF(T_IO_Context * context)
|
||||
free(alphabet_suffix);
|
||||
free(alphabet_prefix);
|
||||
free(alphabet_stack);
|
||||
alphabet_suffix = alphabet_prefix = alphabet_stack = NULL;
|
||||
} // Le fichier contenait au moins la signature GIF87a ou GIF89a
|
||||
else
|
||||
File_error=1;
|
||||
@ -2759,6 +2766,7 @@ void Load_PCX(T_IO_Context * context)
|
||||
}
|
||||
|
||||
free(LBM_buffer);
|
||||
LBM_buffer = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2834,6 +2842,7 @@ void Load_PCX(T_IO_Context * context)
|
||||
/*Close_lecture();*/
|
||||
}
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3086,6 +3095,7 @@ void Load_SCx(T_IO_Context * context)
|
||||
}
|
||||
}
|
||||
free(LBM_buffer);
|
||||
LBM_buffer = NULL;
|
||||
}
|
||||
else
|
||||
File_error=1;
|
||||
@ -3376,6 +3386,7 @@ void Load_PNG(T_IO_Context * context)
|
||||
context->Palette[x].B=palette[x].blue;
|
||||
}
|
||||
free(palette);
|
||||
palette = NULL;
|
||||
}
|
||||
|
||||
if (color_type != PNG_COLOR_TYPE_RGB && color_type != PNG_COLOR_TYPE_RGB_ALPHA)
|
||||
@ -3452,10 +3463,14 @@ void Load_PNG(T_IO_Context * context)
|
||||
/* cleanup heap allocation */
|
||||
if (row_pointers_allocated)
|
||||
{
|
||||
for (y=0; y<context->Height; y++)
|
||||
for (y=0; y<context->Height; y++) {
|
||||
free(Row_pointers[y]);
|
||||
Row_pointers[y] = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
free(Row_pointers);
|
||||
Row_pointers = NULL;
|
||||
}
|
||||
else
|
||||
File_error=2;
|
||||
|
||||
@ -138,6 +138,7 @@ void Free_fileselector_list(T_Fileselector *list)
|
||||
list->First=list->First->Next;
|
||||
// Et on efface l'ancien premier élément de la liste
|
||||
free(temp_item);
|
||||
temp_item = NULL;
|
||||
}
|
||||
Recount_files(list);
|
||||
}
|
||||
@ -325,6 +326,7 @@ void Read_list_of_files(T_Fileselector *list, byte selected_format)
|
||||
|
||||
closedir(current_directory);
|
||||
free(current_path);
|
||||
current_path = NULL;
|
||||
|
||||
Recount_files(list);
|
||||
}
|
||||
@ -1447,8 +1449,8 @@ byte Button_Load_or_Save(byte load, T_IO_Context *context)
|
||||
break;
|
||||
|
||||
case 0: // Set
|
||||
if (Config.Bookmark_directory[clicked_button-10])
|
||||
free(Config.Bookmark_directory[clicked_button-10]);
|
||||
free(Config.Bookmark_directory[clicked_button-10]);
|
||||
Config.Bookmark_directory[clicked_button-10] = NULL;
|
||||
Config.Bookmark_label[clicked_button-10][0]='\0';
|
||||
temp=strlen(Main_current_directory);
|
||||
Config.Bookmark_directory[clicked_button-10]=malloc(temp+1);
|
||||
|
||||
1
graph.c
1
graph.c
@ -2531,6 +2531,7 @@ void Polyfill_general(int vertices, short * points, int color)
|
||||
}
|
||||
|
||||
free(initial_edge);
|
||||
initial_edge = NULL;
|
||||
|
||||
// On ne connait pas simplement les xmin et xmax ici, mais de toutes façon ce n'est pas utilisé en preview
|
||||
Update_part_of_screen(0,top,Main_image_width,bottom-top+1);
|
||||
|
||||
2
init.c
2
init.c
@ -824,12 +824,14 @@ T_Gui_skin * Load_graphics(const char * skin_file)
|
||||
{
|
||||
sprintf(Gui_loading_error_message, "Unable to load the skin image (missing? not an image file?)\n");
|
||||
free(gfx);
|
||||
gfx = NULL;
|
||||
return NULL;
|
||||
}
|
||||
if (Parse_skin(gui, gfx))
|
||||
{
|
||||
SDL_FreeSurface(gui);
|
||||
free(gfx);
|
||||
gfx = NULL;
|
||||
return NULL;
|
||||
}
|
||||
SDL_FreeSurface(gui);
|
||||
|
||||
12
loadsave.c
12
loadsave.c
@ -563,6 +563,7 @@ void End_write(FILE *file)
|
||||
if (! Write_bytes(file,Write_buffer,Write_buffer_index))
|
||||
File_error=1;
|
||||
free(Write_buffer);
|
||||
Write_buffer = NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -1001,14 +1002,8 @@ byte Get_pixel(T_IO_Context *context, short x, short y)
|
||||
/// Cleans up resources (currently: the 24bit buffer)
|
||||
void Destroy_context(T_IO_Context *context)
|
||||
{
|
||||
if (context->Buffer_image_24b)
|
||||
{
|
||||
free(context->Buffer_image_24b);
|
||||
}
|
||||
if (context->Buffer_image)
|
||||
{
|
||||
free(context->Buffer_image);
|
||||
}
|
||||
free(context->Buffer_image_24b);
|
||||
free(context->Buffer_image);
|
||||
memset(context, 0, sizeof(T_IO_Context));
|
||||
}
|
||||
|
||||
@ -1243,6 +1238,7 @@ byte Process_backups(T_String_list **list)
|
||||
free(files_vector[i]);
|
||||
}
|
||||
free(files_vector);
|
||||
files_vector = NULL;
|
||||
|
||||
return nb_files;
|
||||
}
|
||||
|
||||
24
main.c
24
main.c
@ -373,6 +373,7 @@ int Analyze_command_line(int argc, char * argv[], char *main_filename, char *mai
|
||||
Extract_filename(spare_filename, buffer);
|
||||
}
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -533,6 +534,7 @@ int Init_program(int argc,char * argv[])
|
||||
icon_mask[(y*32+x)/8] |=0x80>>(x&7);
|
||||
SDL_WM_SetIcon(icon,icon_mask);
|
||||
free(icon_mask);
|
||||
icon_mask = NULL;
|
||||
}
|
||||
|
||||
SDL_FreeSurface(icon);
|
||||
@ -835,23 +837,25 @@ void Program_shutdown(void)
|
||||
Delete_safety_backups();
|
||||
|
||||
// On libère le buffer de gestion de lignes
|
||||
if(Horizontal_line_buffer) free(Horizontal_line_buffer);
|
||||
free(Horizontal_line_buffer);
|
||||
Horizontal_line_buffer = NULL;
|
||||
|
||||
// On libère le pinceau spécial
|
||||
if (Paintbrush_sprite) free(Paintbrush_sprite);
|
||||
free(Paintbrush_sprite);
|
||||
Paintbrush_sprite = NULL;
|
||||
|
||||
// On libère les différents écrans virtuels et brosse:
|
||||
if(Brush) free(Brush);
|
||||
free(Brush);
|
||||
Brush = NULL;
|
||||
Set_number_of_backups(0);
|
||||
if(Spare_screen) free(Spare_screen);
|
||||
if(Main_screen) free(Main_screen);
|
||||
free(Spare_screen);
|
||||
Spare_screen = NULL;
|
||||
free(Main_screen);
|
||||
Main_screen = NULL;
|
||||
|
||||
// Free the skin (Gui graphics) data
|
||||
if (Gfx)
|
||||
{
|
||||
free(Gfx);
|
||||
Gfx=NULL;
|
||||
}
|
||||
free(Gfx);
|
||||
Gfx=NULL;
|
||||
|
||||
// On prend bien soin de passer dans le répertoire initial:
|
||||
if (chdir(Initial_directory)!=-1)
|
||||
|
||||
@ -1462,6 +1462,7 @@ void Load_PI1(T_IO_Context * context)
|
||||
else
|
||||
File_error=1;
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
else
|
||||
File_error=1;
|
||||
@ -1528,6 +1529,7 @@ void Save_PI1(T_IO_Context * context)
|
||||
}
|
||||
// Libération du buffer mémoire
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1790,12 +1792,14 @@ void Load_PC1(T_IO_Context * context)
|
||||
File_error=1;
|
||||
free(bufferdecomp);
|
||||
free(buffercomp);
|
||||
buffercomp = bufferdecomp = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
File_error=1;
|
||||
free(bufferdecomp);
|
||||
free(buffercomp);
|
||||
buffercomp = bufferdecomp = NULL;
|
||||
}
|
||||
fclose(file);
|
||||
}
|
||||
@ -1866,6 +1870,7 @@ void Save_PC1(T_IO_Context * context)
|
||||
// Libération des buffers mémoire
|
||||
free(bufferdecomp);
|
||||
free(buffercomp);
|
||||
buffercomp = bufferdecomp = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1969,6 +1974,7 @@ void Load_NEO(T_IO_Context * context)
|
||||
else
|
||||
File_error=1;
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
else
|
||||
File_error=1;
|
||||
@ -2033,6 +2039,7 @@ void Save_NEO(T_IO_Context * context)
|
||||
}
|
||||
// Libération du buffer mémoire
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2667,6 +2674,7 @@ void Save_SCR(T_IO_Context * context)
|
||||
fclose(file);
|
||||
|
||||
free (output);
|
||||
output = NULL;
|
||||
|
||||
File_error = 0;
|
||||
}
|
||||
|
||||
11
op_c.c
11
op_c.c
@ -223,6 +223,7 @@ void CT_delete(T_Conversion_table * t)
|
||||
{
|
||||
free(t->table);
|
||||
free(t);
|
||||
t = NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -299,7 +300,7 @@ T_Occurrence_table * OT_new(int nbb_r,int nbb_g,int nbb_b)
|
||||
{
|
||||
// Not enough memory !
|
||||
free(n);
|
||||
n=0;
|
||||
n=NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@ -312,6 +313,7 @@ void OT_delete(T_Occurrence_table * t)
|
||||
{
|
||||
free(t->table);
|
||||
free(t);
|
||||
t = NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -793,6 +795,7 @@ void CS_Delete(T_Cluster_set * cs)
|
||||
cs->clusters = nxt;
|
||||
}
|
||||
free(cs);
|
||||
cs = NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -1019,7 +1022,7 @@ T_Gradient_set * GS_New(T_Cluster_set * cs)
|
||||
n=(T_Gradient_set *)malloc(sizeof(T_Gradient_set));
|
||||
if (n!=NULL)
|
||||
{
|
||||
// On recopie les paramŠtres demand‚s
|
||||
// On recopie les paramètres demandés
|
||||
n->nb_max=cs->nb_max;
|
||||
|
||||
// On tente d'allouer la table
|
||||
@ -1029,9 +1032,9 @@ T_Gradient_set * GS_New(T_Cluster_set * cs)
|
||||
GS_Init(n,cs);
|
||||
else
|
||||
{
|
||||
// Table impossible … allouer
|
||||
// Table impossible à allouer
|
||||
free(n);
|
||||
n=0;
|
||||
n=NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2226,6 +2226,7 @@ void Polyfill_12_9(void)
|
||||
Display_all_screen();
|
||||
Polyfill(Polyfill_number_of_points,Polyfill_table_of_points,color);
|
||||
free(Polyfill_table_of_points);
|
||||
Polyfill_table_of_points = NULL;
|
||||
|
||||
End_of_modification();
|
||||
if ( (Config.Coords_rel) && (Menu_is_visible) )
|
||||
@ -2556,6 +2557,7 @@ void Filled_polyform_12_8(void)
|
||||
Display_all_screen();
|
||||
Polyfill(Polyfill_number_of_points,Polyfill_table_of_points,color);
|
||||
free(Polyfill_table_of_points);
|
||||
Polyfill_table_of_points = NULL;
|
||||
|
||||
Paintbrush_hidden=0;
|
||||
|
||||
@ -2640,6 +2642,7 @@ void Filled_contour_0_8(void)
|
||||
Display_all_screen();
|
||||
Polyfill(Polyfill_number_of_points,Polyfill_table_of_points,color);
|
||||
free(Polyfill_table_of_points);
|
||||
Polyfill_table_of_points = NULL;
|
||||
|
||||
Paintbrush_hidden=0;
|
||||
|
||||
|
||||
4
pages.c
4
pages.c
@ -116,8 +116,9 @@ void Free_layer(T_Page * page, byte layer)
|
||||
ptr = (short *)(page->Image[layer]);
|
||||
if (-- (*(ptr-1))) // Users--
|
||||
return;
|
||||
else
|
||||
else {
|
||||
free(ptr-1);
|
||||
}
|
||||
|
||||
// Stats
|
||||
Stats_pages_number--;
|
||||
@ -486,6 +487,7 @@ void Free_last_page_of_list(T_List_of_pages * list)
|
||||
page->Prev->Next = page->Next;
|
||||
Clear_page(page);
|
||||
free(page);
|
||||
page = NULL;
|
||||
list->List_size--;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user