Commit b673c3d
committed
[[ Foreign Callbacks ]] Bridging and lifetime management.
There is a new LCB type 'foreign handler type'. Handler types marked as foreign will automatically bridge
to C function pointers when used as a parameter type for a foreign handler.
Additionally, the lifetime of C function pointers generated in this way is guaranteed to be the length
of the existance of the instance they are attached to. i.e. When a handler identifier is evaluated, a
handler-ref is cached against the module instance; thus if the handler-ref is subsequently bridged to a
C function ptr, that handler-ref owns the C function ptr. When a module instance is finally destroyed, all
handler-refs and thus any C function pointers they own are then destroyed.1 parent 4551870 commit b673c3d
File tree
16 files changed
+334
-110
lines changed- libfoundation
- include
- src
- libscript
- include/libscript
- src
- tests/lcb/vm
- toolchain/lc-compile/src
16 files changed
+334
-110
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1673 | 1673 | | |
1674 | 1674 | | |
1675 | 1675 | | |
| 1676 | + | |
| 1677 | + | |
| 1678 | + | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
| 1687 | + | |
1676 | 1688 | | |
1677 | 1689 | | |
1678 | 1690 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| 96 | + | |
96 | 97 | | |
97 | 98 | | |
98 | 99 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
729 | 729 | | |
730 | 730 | | |
731 | 731 | | |
732 | | - | |
733 | | - | |
| 732 | + | |
734 | 733 | | |
735 | 734 | | |
736 | 735 | | |
| |||
749 | 748 | | |
750 | 749 | | |
751 | 750 | | |
752 | | - | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
753 | 754 | | |
754 | 755 | | |
755 | 756 | | |
| |||
769 | 770 | | |
770 | 771 | | |
771 | 772 | | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
772 | 794 | | |
773 | 795 | | |
774 | 796 | | |
| |||
1217 | 1239 | | |
1218 | 1240 | | |
1219 | 1241 | | |
| 1242 | + | |
| 1243 | + | |
1220 | 1244 | | |
1221 | 1245 | | |
1222 | 1246 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
309 | 309 | | |
310 | 310 | | |
311 | 311 | | |
| 312 | + | |
312 | 313 | | |
313 | 314 | | |
314 | 315 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
569 | 569 | | |
570 | 570 | | |
571 | 571 | | |
572 | | - | |
| 572 | + | |
573 | 573 | | |
574 | 574 | | |
575 | 575 | | |
| |||
582 | 582 | | |
583 | 583 | | |
584 | 584 | | |
585 | | - | |
| 585 | + | |
586 | 586 | | |
587 | 587 | | |
588 | 588 | | |
589 | 589 | | |
590 | 590 | | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
591 | 601 | | |
592 | 602 | | |
593 | 603 | | |
| |||
620 | 630 | | |
621 | 631 | | |
622 | 632 | | |
623 | | - | |
| 633 | + | |
624 | 634 | | |
625 | 635 | | |
626 | 636 | | |
| |||
0 commit comments