@@ -1224,13 +1224,10 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
12241224 legacy_psymtab * pst ;
12251225
12261226 /* List of current psymtab's include files. */
1227- const char * * psymtab_include_list ;
1228- int includes_allocated ;
1229- int includes_used ;
1227+ std ::vector < const char * > psymtab_include_list ;
12301228
12311229 /* Index within current psymtab dependency list. */
1232- legacy_psymtab * * dependency_list ;
1233- int dependencies_used , dependencies_allocated ;
1230+ std ::vector < legacy_psymtab * > dependency_list ;
12341231
12351232 text_addr = DBX_TEXT_ADDR (objfile );
12361233 text_size = DBX_TEXT_SIZE (objfile );
@@ -1243,17 +1240,6 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
12431240
12441241 pst = (legacy_psymtab * ) 0 ;
12451242
1246- includes_allocated = 30 ;
1247- includes_used = 0 ;
1248- psymtab_include_list = (const char * * ) alloca (includes_allocated *
1249- sizeof (const char * ));
1250-
1251- dependencies_allocated = 30 ;
1252- dependencies_used = 0 ;
1253- dependency_list =
1254- (legacy_psymtab * * ) alloca (dependencies_allocated *
1255- sizeof (legacy_psymtab * ));
1256-
12571243 /* Init bincl list */
12581244 std ::vector < struct header_file_location > bincl_storage ;
12591245 scoped_restore restore_bincl_global
@@ -1384,16 +1370,18 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
13841370 which are not the address. */
13851371 && unrel_val >= pst -> unrelocated_text_low ())
13861372 {
1387- stabs_end_psymtab (objfile , partial_symtabs ,
1388- pst , psymtab_include_list ,
1389- includes_used , symnum * dbx -> ctx .symbol_size ,
1373+ stabs_end_psymtab (objfile , partial_symtabs , pst ,
1374+ psymtab_include_list .data (),
1375+ psymtab_include_list .size (),
1376+ symnum * dbx -> ctx .symbol_size ,
13901377 unrel_val > pst -> unrelocated_text_high ()
13911378 ? unrel_val : pst -> unrelocated_text_high (),
1392- dependency_list , dependencies_used ,
1379+ dependency_list .data (),
1380+ dependency_list .size (),
13931381 textlow_not_set );
13941382 pst = (legacy_psymtab * ) 0 ;
1395- includes_used = 0 ;
1396- dependencies_used = 0 ;
1383+ psymtab_include_list . clear () ;
1384+ dependency_list . clear () ;
13971385 dbx -> ctx .has_line_numbers = 0 ;
13981386 }
13991387 else
@@ -1501,17 +1489,19 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
15011489 if (pst )
15021490 {
15031491 unrelocated_addr unrel_value = unrelocated_addr (valu );
1504- stabs_end_psymtab (objfile , partial_symtabs ,
1505- pst , psymtab_include_list ,
1506- includes_used , symnum * dbx -> ctx .symbol_size ,
1492+ stabs_end_psymtab (objfile , partial_symtabs , pst ,
1493+ psymtab_include_list .data (),
1494+ psymtab_include_list .size (),
1495+ symnum * dbx -> ctx .symbol_size ,
15071496 unrel_value > pst -> unrelocated_text_high ()
15081497 ? unrel_value
15091498 : pst -> unrelocated_text_high (),
1510- dependency_list , dependencies_used ,
1499+ dependency_list .data (),
1500+ dependency_list .size (),
15111501 prev_textlow_not_set );
15121502 pst = (legacy_psymtab * ) 0 ;
1513- includes_used = 0 ;
1514- dependencies_used = 0 ;
1503+ psymtab_include_list . clear () ;
1504+ dependency_list . clear () ;
15151505 dbx -> ctx .has_line_numbers = 0 ;
15161506 }
15171507 }
@@ -1624,7 +1614,7 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
16241614 {
16251615 int i ;
16261616
1627- for (i = 0 ; i < includes_used ; i ++ )
1617+ for (i = 0 ; i < psymtab_include_list . size () ; i ++ )
16281618 if (filename_cmp (namestring , psymtab_include_list [i ]) == 0 )
16291619 {
16301620 i = -1 ;
@@ -1636,16 +1626,7 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
16361626
16371627 record_include_file :
16381628
1639- psymtab_include_list [includes_used ++ ] = namestring ;
1640- if (includes_used >= includes_allocated )
1641- {
1642- const char * * orig = psymtab_include_list ;
1643-
1644- psymtab_include_list = (const char * * )
1645- alloca ((includes_allocated *= 2 ) * sizeof (const char * ));
1646- memcpy (psymtab_include_list , orig ,
1647- includes_used * sizeof (const char * ));
1648- }
1629+ psymtab_include_list .push_back (namestring );
16491630 continue ;
16501631 }
16511632 case N_LSYM : /* Typedef or automatic variable. */
@@ -2094,7 +2075,7 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
20942075 int i ;
20952076 int found = 0 ;
20962077
2097- for (i = 0 ; i < dependencies_used ; i ++ )
2078+ for (i = 0 ; i < dependency_list . size () ; i ++ )
20982079 if (dependency_list [i ] == needed_pst )
20992080 {
21002081 found = 1 ;
@@ -2105,27 +2086,7 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
21052086 if (found )
21062087 continue ;
21072088
2108- dependency_list [dependencies_used ++ ] = needed_pst ;
2109- if (dependencies_used >= dependencies_allocated )
2110- {
2111- legacy_psymtab * * orig = dependency_list ;
2112-
2113- dependency_list =
2114- (legacy_psymtab * * )
2115- alloca ((dependencies_allocated *= 2 )
2116- * sizeof (legacy_psymtab * ));
2117- memcpy (dependency_list , orig ,
2118- (dependencies_used
2119- * sizeof (legacy_psymtab * )));
2120- #ifdef DEBUG_INFO
2121- gdb_printf (gdb_stderr ,
2122- "Had to reallocate "
2123- "dependency list.\n" );
2124- gdb_printf (gdb_stderr ,
2125- "New dependencies allocated: %d\n" ,
2126- dependencies_allocated );
2127- #endif
2128- }
2089+ dependency_list .push_back (needed_pst );
21292090 }
21302091 }
21312092 continue ;
@@ -2138,13 +2099,16 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
21382099 if (pst && gdbarch_sofun_address_maybe_missing (gdbarch ))
21392100 {
21402101 stabs_end_psymtab (objfile , partial_symtabs , pst ,
2141- psymtab_include_list , includes_used ,
2102+ psymtab_include_list .data (),
2103+ psymtab_include_list .size (),
21422104 symnum * dbx -> ctx .symbol_size ,
2143- (unrelocated_addr ) 0 , dependency_list ,
2144- dependencies_used , textlow_not_set );
2105+ (unrelocated_addr ) 0 ,
2106+ dependency_list .data (),
2107+ dependency_list .size (),
2108+ textlow_not_set );
21452109 pst = (legacy_psymtab * ) 0 ;
2146- includes_used = 0 ;
2147- dependencies_used = 0 ;
2110+ psymtab_include_list . clear () ;
2111+ dependency_list . clear () ;
21482112 dbx -> ctx .has_line_numbers = 0 ;
21492113 }
21502114 continue ;
@@ -2204,12 +2168,14 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
22042168 : CORE_ADDR (dbx -> ctx .lowest_text_address ))
22052169 + text_size ));
22062170
2207- stabs_end_psymtab (objfile , partial_symtabs ,
2208- pst , psymtab_include_list , includes_used ,
2171+ stabs_end_psymtab (objfile , partial_symtabs , pst ,
2172+ psymtab_include_list .data (),
2173+ psymtab_include_list .size (),
22092174 symnum * dbx -> ctx .symbol_size ,
22102175 (text_end > pst -> unrelocated_text_high ()
22112176 ? text_end : pst -> unrelocated_text_high ()),
2212- dependency_list , dependencies_used , textlow_not_set );
2177+ dependency_list .data (), dependency_list .size (),
2178+ textlow_not_set );
22132179 }
22142180}
22152181
0 commit comments