Commit e009504
Go generator: emit output size tracking and capped pre-allocation
Update the Go code generator to emit TrackOutputBytesOf calls before
each heap allocation site (union arms, optional fields, array elements)
and cap initial array allocation at 256 elements with append-based
growth. This works with the new MaxOutputBytes option in go-xdr to
allow callers to limit cumulative decoded output size.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 1636575 commit e009504
5 files changed
Lines changed: 131 additions & 14 deletions
File tree
- lib/xdrgen/generators
- spec/output/generator_spec_go
- nesting.x
- optional.x
- test.x
- union.x
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
571 | 571 | | |
572 | 572 | | |
573 | 573 | | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
574 | 577 | | |
575 | 578 | | |
576 | 579 | | |
| |||
662 | 665 | | |
663 | 666 | | |
664 | 667 | | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
665 | 671 | | |
666 | 672 | | |
667 | 673 | | |
| |||
704 | 710 | | |
705 | 711 | | |
706 | 712 | | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
707 | 716 | | |
708 | 717 | | |
709 | 718 | | |
| |||
744 | 753 | | |
745 | 754 | | |
746 | 755 | | |
747 | | - | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
748 | 769 | | |
749 | | - | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
750 | 775 | | |
751 | 776 | | |
752 | 777 | | |
753 | 778 | | |
754 | 779 | | |
755 | 780 | | |
756 | 781 | | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
757 | 785 | | |
758 | 786 | | |
759 | 787 | | |
| |||
763 | 791 | | |
764 | 792 | | |
765 | 793 | | |
| 794 | + | |
766 | 795 | | |
767 | 796 | | |
768 | 797 | | |
| |||
Lines changed: 8 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
505 | 505 | | |
506 | 506 | | |
507 | 507 | | |
508 | | - | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
509 | 512 | | |
510 | 513 | | |
511 | 514 | | |
512 | 515 | | |
513 | 516 | | |
514 | 517 | | |
515 | 518 | | |
516 | | - | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
517 | 523 | | |
518 | 524 | | |
519 | 525 | | |
| |||
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
189 | 192 | | |
190 | 193 | | |
191 | 194 | | |
| |||
200 | 203 | | |
201 | 204 | | |
202 | 205 | | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
203 | 209 | | |
204 | 210 | | |
205 | 211 | | |
| |||
214 | 220 | | |
215 | 221 | | |
216 | 222 | | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
217 | 226 | | |
218 | 227 | | |
219 | 228 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
552 | 552 | | |
553 | 553 | | |
554 | 554 | | |
555 | | - | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
556 | 562 | | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
557 | 567 | | |
558 | 568 | | |
559 | 569 | | |
560 | 570 | | |
561 | 571 | | |
562 | 572 | | |
| 573 | + | |
563 | 574 | | |
564 | 575 | | |
565 | 576 | | |
| |||
631 | 642 | | |
632 | 643 | | |
633 | 644 | | |
634 | | - | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
635 | 652 | | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
636 | 657 | | |
637 | 658 | | |
638 | 659 | | |
639 | 660 | | |
640 | 661 | | |
641 | 662 | | |
| 663 | + | |
642 | 664 | | |
643 | 665 | | |
644 | 666 | | |
| |||
1006 | 1028 | | |
1007 | 1029 | | |
1008 | 1030 | | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
1009 | 1034 | | |
1010 | 1035 | | |
1011 | 1036 | | |
| |||
1114 | 1139 | | |
1115 | 1140 | | |
1116 | 1141 | | |
1117 | | - | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
1118 | 1149 | | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
1119 | 1154 | | |
1120 | 1155 | | |
1121 | 1156 | | |
1122 | 1157 | | |
1123 | 1158 | | |
1124 | 1159 | | |
| 1160 | + | |
1125 | 1161 | | |
1126 | 1162 | | |
1127 | 1163 | | |
| |||
1571 | 1607 | | |
1572 | 1608 | | |
1573 | 1609 | | |
1574 | | - | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
1575 | 1614 | | |
1576 | 1615 | | |
1577 | 1616 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
417 | 417 | | |
418 | 418 | | |
419 | 419 | | |
420 | | - | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
421 | 424 | | |
422 | 425 | | |
423 | 426 | | |
424 | 427 | | |
425 | 428 | | |
426 | 429 | | |
427 | 430 | | |
428 | | - | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
429 | 435 | | |
430 | 436 | | |
431 | 437 | | |
| |||
437 | 443 | | |
438 | 444 | | |
439 | 445 | | |
440 | | - | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
441 | 453 | | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
442 | 458 | | |
443 | 459 | | |
444 | 460 | | |
445 | 461 | | |
446 | 462 | | |
447 | 463 | | |
| 464 | + | |
448 | 465 | | |
449 | 466 | | |
450 | 467 | | |
| |||
626 | 643 | | |
627 | 644 | | |
628 | 645 | | |
629 | | - | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
630 | 650 | | |
631 | 651 | | |
632 | 652 | | |
633 | 653 | | |
634 | 654 | | |
635 | 655 | | |
636 | 656 | | |
637 | | - | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
638 | 661 | | |
639 | 662 | | |
640 | 663 | | |
| |||
646 | 669 | | |
647 | 670 | | |
648 | 671 | | |
649 | | - | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
650 | 679 | | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
651 | 684 | | |
652 | 685 | | |
653 | 686 | | |
654 | 687 | | |
655 | 688 | | |
656 | 689 | | |
| 690 | + | |
657 | 691 | | |
658 | 692 | | |
659 | 693 | | |
| |||
0 commit comments