| Index: chrome_frame/vtable_patch_manager.cc
|
| ===================================================================
|
| --- chrome_frame/vtable_patch_manager.cc (revision 27143)
|
| +++ chrome_frame/vtable_patch_manager.cc (working copy)
|
| @@ -30,6 +30,15 @@
|
| DCHECK(vtable);
|
|
|
| for (MethodPatchInfo* it = patches; it->index_ != -1; ++it) {
|
| + if (it->stub_ != NULL) {
|
| + // If this DCHECK fires it means that we are using the same VTable
|
| + // information to patch two different interfaces.
|
| + DCHECK(false);
|
| + DLOG(ERROR) << "Attempting to patch two different VTables with the "
|
| + << "same VTable information";
|
| + continue;
|
| + }
|
| +
|
| PROC original_fn = vtable[it->index_];
|
| FunctionStub* stub = FunctionStub::FromCode(original_fn);
|
| if (stub != NULL) {
|
| @@ -65,7 +74,7 @@
|
| HRESULT UnpatchInterfaceMethods(MethodPatchInfo* patches) {
|
| for (MethodPatchInfo* it = patches; it->index_ != -1; ++it) {
|
| if (it->stub_) {
|
| - DCHECK(it->stub_->absolute_target() ==
|
| + DCHECK(it->stub_->absolute_target() ==
|
| reinterpret_cast<uintptr_t>(it->method_));
|
| // Modify the stub to just jump directly to the original function.
|
| it->stub_->BypassStub(reinterpret_cast<void*>(it->stub_->argument()));
|
|
|
| Property changes on: chrome_frame\vtable_patch_manager.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|