Lines Matching refs:impl_
510 } impl_; member in wasm::Val
512 Val(ValKind kind, impl impl) : kind_(kind), impl_(impl) {} in Val()
515 Val() : kind_(ValKind::EXTERNREF) { impl_.ref = nullptr; } in Val()
516 explicit Val(int32_t i) : kind_(ValKind::I32) { impl_.i32 = i; } in Val()
517 explicit Val(int64_t i) : kind_(ValKind::I64) { impl_.i64 = i; } in Val()
518 explicit Val(float32_t z) : kind_(ValKind::F32) { impl_.f32 = z; } in Val()
519 explicit Val(float64_t z) : kind_(ValKind::F64) { impl_.f64 = z; } in Val()
520 explicit Val(own<Ref>&& r) : kind_(ValKind::EXTERNREF) { impl_.ref = r.release(); } in Val()
522 Val(Val&& that) : kind_(that.kind_), impl_(that.impl_) { in Val()
523 if (is_ref()) that.impl_.ref = nullptr; in Val()
542 if (is_ref() && impl_.ref) { in reset()
543 destroyer()(impl_.ref); in reset()
544 impl_.ref = nullptr; in reset()
551 impl_ = that.impl_; in reset()
552 if (is_ref()) that.impl_.ref = nullptr; in reset()
561 auto i32() const -> int32_t { assert(kind_ == ValKind::I32); return impl_.i32; } in i32()
562 auto i64() const -> int64_t { assert(kind_ == ValKind::I64); return impl_.i64; } in i64()
563 auto f32() const -> float32_t { assert(kind_ == ValKind::F32); return impl_.f32; } in f32()
564 auto f64() const -> float64_t { assert(kind_ == ValKind::F64); return impl_.f64; } in f64()
565 auto ref() const -> Ref* { assert(is_ref()); return impl_.ref; } in ref()
570 auto ref = impl_.ref; in release_ref()
571 impl_.ref = nullptr; in release_ref()
576 if (is_ref() && impl_.ref != nullptr) { in copy()
580 impl.ref = impl_.ref->copy().release(); in copy()
583 return Val(kind_, impl_); in copy()