Fix some of the Value initializations
This commit is contained in:
parent
7a6bdc8aad
commit
db91d830af
2 changed files with 7 additions and 7 deletions
|
@ -4,11 +4,11 @@
|
|||
|
||||
Syntax::Syntax(String filename, String modulename, Value expression) {}
|
||||
|
||||
Value Syntax::get_value() {
|
||||
return pod_to_value(_value->expression.get(&*_value));
|
||||
Result<Value> Syntax::get_value(Arena& arena) {
|
||||
return Value::create(arena, _value->expression.get(&*_value));
|
||||
}
|
||||
|
||||
Result<Value> pod_to_value(PodObject* obj, Arena& arena) {
|
||||
Result<Value> Value::create(Arena& arena, PodObject* obj) {
|
||||
switch (obj->header.tag) {
|
||||
case Tag::Nil:
|
||||
return Value();
|
||||
|
@ -32,7 +32,7 @@ Result<Value> syntax_unwrap(Arena& arena, Value& val) {
|
|||
Syntax* syntax = val.to<Syntax>();
|
||||
if (syntax == 0) return val.copy(arena);
|
||||
|
||||
return syntax->get_value();
|
||||
return syntax->get_value(arena);
|
||||
}
|
||||
|
||||
Result<Value> Nil::copy(Arena& arena) { return Value(Nil()); }
|
||||
|
|
|
@ -141,7 +141,7 @@ class Syntax : public Object {
|
|||
return Syntax(TRY(MkGcRoot(obj, arena)));
|
||||
}
|
||||
|
||||
Value get_value();
|
||||
Result<Value> get_value(Arena& arena);
|
||||
|
||||
virtual Result<Value> copy(Arena& arena) final;
|
||||
|
||||
|
@ -214,6 +214,8 @@ class Value {
|
|||
new (buf) T(std::move(obj));
|
||||
}
|
||||
|
||||
static Result<Value> create(Arena& arena, PodObject* obj);
|
||||
|
||||
template <class T>
|
||||
bool is() {
|
||||
return dynamic_cast<T*>((Object*)buf) != nullptr;
|
||||
|
@ -233,6 +235,4 @@ class Value {
|
|||
uint8_t buf[24];
|
||||
};
|
||||
|
||||
Value pod_to_value(PodObject* obj);
|
||||
|
||||
Result<Value> syntax_unwrap(Value& val);
|
||||
|
|
Loading…
Reference in a new issue