@@ -461,8 +461,14 @@ struct Parser {
461461 keyValues. append ( kv)
462462
463463 if isKeyed {
464+ if keyTables [ tableIndex] . table. keyValues. isEmpty {
465+ keyTables [ tableIndex] . table. keyValues. reserveCapacity ( 8 )
466+ }
464467 keyTables [ tableIndex] . table. keyValues. append ( index)
465468 } else {
469+ if tables [ tableIndex] . keyValues. isEmpty {
470+ tables [ tableIndex] . keyValues. reserveCapacity ( 8 )
471+ }
466472 tables [ tableIndex] . keyValues. append ( index)
467473 }
468474 return index
@@ -498,8 +504,14 @@ struct Parser {
498504 keyTables. append ( KeyTablePair ( key: key, keyHash: keyHash, table: newTable) )
499505
500506 if isKeyed {
507+ if keyTables [ tableIndex] . table. tables. isEmpty {
508+ keyTables [ tableIndex] . table. tables. reserveCapacity ( 8 )
509+ }
501510 keyTables [ tableIndex] . table. tables. append ( index)
502511 } else {
512+ if tables [ tableIndex] . tables. isEmpty {
513+ tables [ tableIndex] . tables. reserveCapacity ( 8 )
514+ }
503515 tables [ tableIndex] . tables. append ( index)
504516 }
505517 return index
@@ -515,8 +527,14 @@ struct Parser {
515527 let index = keyArrays. count
516528 keyArrays. append ( KeyArrayPair ( key: key, keyHash: keyHash, array: InternalTOMLArray ( kind: kind) ) )
517529 if isKeyed {
530+ if keyTables [ tableIndex] . table. arrays. isEmpty {
531+ keyTables [ tableIndex] . table. arrays. reserveCapacity ( 8 )
532+ }
518533 keyTables [ tableIndex] . table. arrays. append ( index)
519534 } else {
535+ if tables [ tableIndex] . arrays. isEmpty {
536+ tables [ tableIndex] . arrays. reserveCapacity ( 8 )
537+ }
520538 tables [ tableIndex] . arrays. append ( index)
521539 }
522540 return index
0 commit comments