void mixinOopDesc::add_method(methodOop method) { objArrayOop old_array = methods(); symbolOop selector = method->selector(); // Find out if a method with the same selector exists. for (int index = 1; index <= old_array->length(); index++) { assert(old_array->obj_at(index)->is_method(), "must be method"); methodOop m = methodOop(old_array->obj_at(index)); if (m->selector() == selector) { objArrayOop new_array = old_array->copy(); new_array->obj_at_put(index, method); set_methods(new_array); return; } } // Extend the array set_methods(old_array->copy_add(method)); }