@@ -111,16 +111,17 @@ static const char *intern_string(const char *str)
111111}
112112
113113struct id_color {
114- char * id ;
115114 size_t color ;
115+ char id [1 ];
116116};
117117
118118static struct id_color *
119119id_color_new (const char * id , size_t color )
120120{
121- struct id_color * node = malloc (sizeof (struct id_color ));
121+ struct id_color * node = malloc (sizeof (struct id_color ) + strlen ( id ) );
122122
123- node -> id = (char * ) malloc (strlen (id ) + 1 );
123+ if (!node )
124+ die ("Failed to allocate color" );
124125 strcpy (node -> id , id );
125126 node -> color = color ;
126127
@@ -130,7 +131,6 @@ id_color_new(const char *id, size_t color)
130131static void
131132id_color_delete (struct id_color * node )
132133{
133- free (node -> id );
134134 free (node );
135135}
136136
@@ -1228,23 +1228,23 @@ struct graph *
12281228init_graph_v2 (void )
12291229{
12301230 struct graph_v2 * graph = calloc (1 , sizeof (* graph ));
1231- struct graph * api ;
1232-
1233- if (! graph )
1234- return NULL ;
1235-
1236- api = & graph -> api ;
1237- api -> private = graph ;
1238- api -> done = done_graph ;
1239- api -> done_rendering = done_graph_rendering ;
1240- api -> add_commit = graph_add_commit ;
1241- api -> add_parent = graph_add_parent ;
1242- api -> is_merge = graph_is_merge ;
1243- api -> render_parents = graph_render_parents ;
1244- api -> foreach_symbol = graph_foreach_symbol ;
1245- api -> symbol_to_ascii = graph_symbol_to_ascii ;
1246- api -> symbol_to_utf8 = graph_symbol_to_utf8 ;
1247- api -> symbol_to_chtype = graph_symbol_to_chtype ;
1231+ struct graph * api = NULL ;
1232+
1233+ if (graph ) {
1234+ api = & graph -> api ;
1235+
1236+ api -> private = graph ;
1237+ api -> done = done_graph ;
1238+ api -> done_rendering = done_graph_rendering ;
1239+ api -> add_commit = graph_add_commit ;
1240+ api -> add_parent = graph_add_parent ;
1241+ api -> render_parents = graph_render_parents ;
1242+ api -> is_merge = graph_is_merge ;
1243+ api -> foreach_symbol = graph_foreach_symbol ;
1244+ api -> symbol_to_ascii = graph_symbol_to_ascii ;
1245+ api -> symbol_to_utf8 = graph_symbol_to_utf8 ;
1246+ api -> symbol_to_chtype = graph_symbol_to_chtype ;
1247+ }
12481248
12491249 return api ;
12501250}
0 commit comments