diff options
Diffstat (limited to 'libjava/resolve.cc')
-rw-r--r-- | libjava/resolve.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libjava/resolve.cc b/libjava/resolve.cc index ce1af8d..d71e125 100644 --- a/libjava/resolve.cc +++ b/libjava/resolve.cc @@ -575,6 +575,16 @@ _Jv_PrepareClass(jclass klass) _Jv_InterpMethod *im = reinterpret_cast<_Jv_InterpMethod *> (imeth); _Jv_VerifyMethod (im); clz->methods[i].ncode = im->ncode (); + + // Resolve ctable entries pointing to this method. See + // _Jv_Defer_Resolution. + void **code = (void **)imeth->deferred; + while (code) + { + void **target = (void **)*code; + *code = clz->methods[i].ncode; + code = target; + } } } |