Mercurial > hg > graal-jvmci-8
comparison src/share/vm/code/dependencies.cpp @ 22940:dc2f15e0caee
8069263: assert(fm == NULL || fm->method_holder() == _participants[n]) failed: sanity
Summary: default methods added to classes confuse dependency processing
Reviewed-by: kvn
author | roland |
---|---|
date | Thu, 12 Mar 2015 14:15:09 +0100 |
parents | c4f1e23c4139 |
children | d8f133adf05d |
comparison
equal
deleted
inserted
replaced
22935:bff23dedb306 | 22940:dc2f15e0caee |
---|---|
809 // Note: If n==num_participants, returns NULL. | 809 // Note: If n==num_participants, returns NULL. |
810 Method* found_method(int n) { | 810 Method* found_method(int n) { |
811 assert((uint)n <= (uint)_num_participants, "oob"); | 811 assert((uint)n <= (uint)_num_participants, "oob"); |
812 Method* fm = _found_methods[n]; | 812 Method* fm = _found_methods[n]; |
813 assert(n == _num_participants || fm != NULL, "proper usage"); | 813 assert(n == _num_participants || fm != NULL, "proper usage"); |
814 assert(fm == NULL || fm->method_holder() == _participants[n], "sanity"); | 814 if (fm != NULL && fm->method_holder() != _participants[n]) { |
815 // Default methods from interfaces can be added to classes. In | |
816 // that case the holder of the method is not the class but the | |
817 // interface where it's defined. | |
818 assert(fm->is_default_method(), "sanity"); | |
819 return NULL; | |
820 } | |
815 return fm; | 821 return fm; |
816 } | 822 } |
817 | 823 |
818 #ifdef ASSERT | 824 #ifdef ASSERT |
819 // Assert that m is inherited into ctxk, without intervening overrides. | 825 // Assert that m is inherited into ctxk, without intervening overrides. |