|
|
| version 1.2, 2001/02/25 08:12:21 | version 1.8, 2001/02/25 17:58:29 |
|---|---|
| Line 23 public: // Value | Line 23 public: // Value |
| } | } |
| // frame: my or self_transparent | // frame: my or self_transparent |
| void put_element(const String& name, Value *value){ | void put_element(const String& name, Value *value){ |
| if(!my.replace(name, value)) | if(!my.put_replace(name, value)) |
| self->put_element(name, value); | self->put_element(name, value); |
| } | } |
| // frame: none yet | transparent | // frame: self_transparent |
| VClass *get_class() const { return self->get_class(); } | VClass* get_class() { return self->get_class(); } |
| // methodframe: self_transparent | |
| Value *get_aliased() { return self->get_aliased(); } | |
| public: // usage | public: // usage |
| VMethodFrame(Pool& apool, const Junction& ajunction) : WContext(apool, 0 /* empty */), | VMethodFrame(Pool& apool, const Junction& ajunction) : |
| WContext(apool, 0 /* empty */, false /* not constructing */), | |
| junction(ajunction), | junction(ajunction), |
| store_param_index(0), | store_param_index(0), |
| my(apool), | my(apool), |
| Line 48 public: // usage | Line 53 public: // usage |
| } | } |
| } | } |
| void set_self(Value *aself) { self=aself; } | void set_self(Value& aself) { self=&aself; } |
| void store_param(Value *value) { | void store_param(Value *value) { |
| Method *method=junction.method; | Method *method=junction.method; |
| if(store_param_index==method->params_names.size()) | if(store_param_index==method->params_names.size()) |
| THROW(0,0, | THROW(0,0, |
| name(), | &name(), |
| "call: too many params (max=%d)", method->params_names.size()); | "call: too many params (max=%d)", method->params_names.size()); |
| my.put(*static_cast<String *>(method->params_names.get(store_param_index++)), value); | my.put(*static_cast<String *>(method->params_names.get(store_param_index++)), value); |