WeakRef.hx 521 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package cpp.vm;
  2. class WeakRef<T>
  3. {
  4. var ref:Dynamic;
  5. var hardRef:Bool;
  6. public function new(inObject:T, inHard:Bool = false)
  7. {
  8. hardRef = inHard;
  9. if (hardRef)
  10. ref = inObject;
  11. else
  12. ref = untyped __global__.__hxcpp_weak_ref_create(inObject);
  13. }
  14. public function get():T
  15. {
  16. if (hardRef)
  17. return ref;
  18. return untyped __global__.__hxcpp_weak_ref_get(ref);
  19. }
  20. public function toString():String
  21. {
  22. if (hardRef)
  23. return "" + hardRef;
  24. return "WeakRef(" + ref + ")";
  25. }
  26. }