Index: src/interface.cc |
=================================================================== |
--- src/interface.cc (revision 11348) |
+++ src/interface.cc (working copy) |
@@ -79,7 +79,7 @@ |
PrintF("%*sthis = ", Nesting::current(), ""); |
this->Print(Nesting::current()); |
PrintF("%*s%s : ", Nesting::current(), "", |
- (*reinterpret_cast<String**>(name))->ToAsciiArray()); |
+ (*static_cast<String**>(name))->ToAsciiArray()); |
interface->Print(Nesting::current()); |
} |
#endif |
@@ -97,7 +97,7 @@ |
#ifdef DEBUG |
Nesting nested; |
#endif |
- reinterpret_cast<Interface*>(p->value)->Unify(interface, ok); |
+ static_cast<Interface*>(p->value)->Unify(interface, ok); |
} |
#ifdef DEBUG |
@@ -180,6 +180,15 @@ |
return; |
} |
+ // Merge instance. |
+ if (!that->instance_.is_null()) { |
+ if (!this->instance_.is_null() && *this->instance_ != *that->instance_) { |
+ *ok = false; |
+ return; |
+ } |
+ this->instance_ = that->instance_; |
+ } |
+ |
// Merge interfaces. |
this->flags_ |= that->flags_; |
that->forward_ = this; |