Hi,

I'm trying to figure out the code of v8::Handle:

  template <class S> bool operator==(Handle<S> that) const {
    internal::Object** a =
reinterpret_cast<internal::Object**>(**this);
    internal::Object** b =
reinterpret_cast<internal::Object**>(*that);
    if (a == 0) return b == 0;
    if (b == 0) return false;
    return *a == *b;
  }

The overloaded operator '==' returns true when handles contain the
same value.

Why is it written in such a way? Is it a workaround of compiler bugs?
Does not the following code work:

  template <class S> bool operator==(Handle<S> that) const {
    return reinterpret_cast<internal::Object*>(**this) ==
reinterpret_cast<internal::Object*>(*that);
  }

Best regards,
Evgeny Astigeevich.

-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

To unsubscribe, reply using "remove me" as the subject.

Reply via email to