Fix for issue 28721.
Change-Id: I8669d5ae5719b2fdd0e8d05aed7da8e55568463d
http://code.google.com/p/android/issues/detail?id=28721
diff --git a/src/dynamic_cast.cc b/src/dynamic_cast.cc
index 4487fff..2dacac8 100644
--- a/src/dynamic_cast.cc
+++ b/src/dynamic_cast.cc
@@ -320,7 +320,7 @@
// If it is known that v points to a public base class subobject
// of a T object, simply adjust the pointer by the offset.
if (t_object != ambiguous_object && src2dst_offset >= 0)
- return const_cast<void*>(adjust_pointer(v, src2dst_offset));
+ return const_cast<void*>(adjust_pointer(v, -src2dst_offset));
// If there is only one T type subobject, we only need to look at
// there. Otherwise, look for the subobject referred by v in the