Unified · Split
| @@ -61,6 +61,15 @@ struct Chuck_Carrier · 60 unmodified lines | |||
| 61 | Chuck_VM * vm; | 61 | Chuck_VM * vm; |
| 62 | Chuck_IO_Chout * chout; | 62 | Chuck_IO_Chout * chout; |
| 63 | Chuck_IO_Cherr * cherr; | 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 | void Chuck_Instr_Chout::execute( Chuck_VM * vm, Chuck_VM_Shred * shred ) | 6565 | void Chuck_Instr_Chout::execute( Chuck_VM * vm, Chuck_VM_Shred * shred ) |
| 6566 | { | 6566 | { |
| 6567 | t_CKUINT *& reg_sp = (t_CKUINT *&)shred->reg->sp; | 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 | void Chuck_Instr_Cherr::execute( Chuck_VM * vm, Chuck_VM_Shred * shred ) | 6578 | void Chuck_Instr_Cherr::execute( Chuck_VM * vm, Chuck_VM_Shred * shred ) |
| 6579 | { | 6579 | { |
| 6580 | t_CKUINT *& reg_sp = (t_CKUINT *&)shred->reg->sp; | 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 | #define __CHUCK_OO_H__ | 35 | #define __CHUCK_OO_H__ |
| 36 | 36 | ||
| 37 | #include "chuck_def.h" | 37 | #include "chuck_def.h" |
| 38 | #include "chuck_carrier.h" | ||
| 38 | #include <string> | 39 | #include <string> |
| 39 | #include <vector> | 40 | #include <vector> |
| 40 | #include <map> | 41 | #include <map> |
| @@ -621,7 +622,7 @@ protected: · 580 unmodified lines | |||
| 621 | struct Chuck_IO_Chout : Chuck_IO | 622 | struct Chuck_IO_Chout : Chuck_IO |
| 622 | { | 623 | { |
| 623 | public: | 624 | public: |
| 624 | Chuck_IO_Chout(); | 625 | Chuck_IO_Chout( Chuck_Carrier * carrier ); |
| 625 | virtual ~Chuck_IO_Chout(); | 626 | virtual ~Chuck_IO_Chout(); |
| 626 | 627 | ||
| 627 | public: | 628 | public: |
| @@ -666,7 +667,7 @@ private: · 38 unmodified lines | |||
| 666 | struct Chuck_IO_Cherr : Chuck_IO | 667 | struct Chuck_IO_Cherr : Chuck_IO |
| 667 | { | 668 | { |
| 668 | public: | 669 | public: |
| 669 | Chuck_IO_Cherr(); | 670 | Chuck_IO_Cherr( Chuck_Carrier * carrier ); |
| 670 | virtual ~Chuck_IO_Cherr(); | 671 | virtual ~Chuck_IO_Cherr(); |
| 671 | 672 | ||
| 672 | public: | 673 | public: |
| @@ -597,9 +597,11 @@ protected: · 596 unmodified lines | |||
| 597 | void handle_external_spork_messages(); | 597 | void handle_external_spork_messages(); |
| 598 | 598 | ||
| 599 | public: | 599 | public: |
| 600 | // REFACTOR-2017: get associated, per-VM environment | 600 | // REFACTOR-2017: get associated, per-VM environment, chout, cherr |
| 601 | Chuck_Carrier * carrier() const { return m_carrier; } | 601 | Chuck_Carrier * carrier() const { return m_carrier; } |
| 602 | Chuck_Env * env() const { return m_carrier->env; } | 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 | //----------------------------------------------------------------------------- |