Unified · Split
| @@ -61,6 +61,15 @@ struct Chuck_Carrier · 60 unmodified lines | ||
| 61 | 61 | Chuck_VM * vm; |
| 62 | 62 | Chuck_IO_Chout * chout; |
| 63 | 63 | Chuck_IO_Cherr * cherr; |
| 64 | + | |
| 65 | + // constructor | |
| 66 | + Chuck_Carrier() : | |
| 67 | + compiler( NULL ), | |
| 68 | + env( NULL ), | |
| 69 | + vm( NULL ), | |
| 70 | + chout( NULL ), | |
| 71 | + cherr( NULL ) | |
| 72 | + { } | |
| 64 | 73 | }; |
| 65 | 74 | |
| 66 | 75 | |
| @@ -6565,7 +6565,7 @@ void Chuck_Instr_Bunghole::execute( Chuck_VM * vm, Chuck_VM_Shred * shred ) · 6564 unmodified lines | ||
| 6565 | 6565 | void Chuck_Instr_Chout::execute( Chuck_VM * vm, Chuck_VM_Shred * shred ) |
| 6566 | 6566 | { |
| 6567 | 6567 | t_CKUINT *& reg_sp = (t_CKUINT *&)shred->reg->sp; |
| 6568 | − push_( reg_sp, (t_CKUINT)vm->carrier()->chout ); | |
| 6568 | + push_( reg_sp, (t_CKUINT)vm->chout() ); | |
| 6569 | 6569 | } |
| 6570 | 6570 | |
| 6571 | 6571 | |
| @@ -6578,7 +6578,7 @@ void Chuck_Instr_Chout::execute( Chuck_VM * vm, Chuck_VM_Shred * shred ) · 6 unmodified lines | ||
| 6578 | 6578 | void Chuck_Instr_Cherr::execute( Chuck_VM * vm, Chuck_VM_Shred * shred ) |
| 6579 | 6579 | { |
| 6580 | 6580 | t_CKUINT *& reg_sp = (t_CKUINT *&)shred->reg->sp; |
| 6581 | − push_( reg_sp, (t_CKUINT)vm->carrier()->cherr ); | |
| 6581 | + push_( reg_sp, (t_CKUINT)vm->cherr() ); | |
| 6582 | 6582 | } |
| 6583 | 6583 | |
| 6584 | 6584 | |
| @@ -35,6 +35,7 @@ · 34 unmodified lines | ||
| 35 | 35 | #define __CHUCK_OO_H__ |
| 36 | 36 | |
| 37 | 37 | #include "chuck_def.h" |
| 38 | +#include "chuck_carrier.h" | |
| 38 | 39 | #include <string> |
| 39 | 40 | #include <vector> |
| 40 | 41 | #include <map> |
| @@ -621,7 +622,7 @@ protected: · 580 unmodified lines | ||
| 621 | 622 | struct Chuck_IO_Chout : Chuck_IO |
| 622 | 623 | { |
| 623 | 624 | public: |
| 624 | − Chuck_IO_Chout(); | |
| 625 | + Chuck_IO_Chout( Chuck_Carrier * carrier ); | |
| 625 | 626 | virtual ~Chuck_IO_Chout(); |
| 626 | 627 | |
| 627 | 628 | public: |
| @@ -666,7 +667,7 @@ private: · 38 unmodified lines | ||
| 666 | 667 | struct Chuck_IO_Cherr : Chuck_IO |
| 667 | 668 | { |
| 668 | 669 | public: |
| 669 | − Chuck_IO_Cherr(); | |
| 670 | + Chuck_IO_Cherr( Chuck_Carrier * carrier ); | |
| 670 | 671 | virtual ~Chuck_IO_Cherr(); |
| 671 | 672 | |
| 672 | 673 | public: |
| @@ -597,9 +597,11 @@ protected: · 596 unmodified lines | ||
| 597 | 597 | void handle_external_spork_messages(); |
| 598 | 598 | |
| 599 | 599 | public: |
| 600 | − // REFACTOR-2017: get associated, per-VM environment | |
| 600 | + // REFACTOR-2017: get associated, per-VM environment, chout, cherr | |
| 601 | 601 | Chuck_Carrier * carrier() const { return m_carrier; } |
| 602 | 602 | Chuck_Env * env() const { return m_carrier->env; } |
| 603 | + Chuck_IO_Chout * chout() const { return m_carrier->chout; } | |
| 604 | + Chuck_IO_Cherr * cherr() const { return m_carrier->cherr; } | |
| 603 | 605 | |
| 604 | 606 | |
| 605 | 607 | //----------------------------------------------------------------------------- |