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)); }
LUALIB_API int luaopen_liblualongnumber(lua_State *L) { luaL_newmetatable(L, LONG_NUM_TYPE); lua_pop(L, 1); set_methods(L, LONG_NUM_TYPE, methods); luaL_register(L, "liblualongnumber", funcs); return 1; }
void QObjectBrowserControl::set_object(QObject *obj_in) { if (m_obj) { disconnect(m_obj,SIGNAL(destroyed()),this,SLOT(on_object_destroyed())); } m_obj=obj_in; clear(); if (!m_obj) return; connect(m_obj,SIGNAL(destroyed()),this,SLOT(on_object_destroyed())); const QMetaObject *metaobj=m_obj->metaObject(); if (!metaobj) return; ui->class_name->setText(metaobj->className()); if (metaobj->superClass()) ui->base_class_name->setText(metaobj->superClass()->className()); else ui->base_class_name->setText(""); if (m_obj->parent()) ui->parent_button->setEnabled(true); else ui->parent_button->setEnabled(false); if ((m_obj->parent())&&(m_obj->parent()->metaObject())) ui->parent_class_name->setText(m_obj->parent()->metaObject()->className()); else ui->parent_class_name->setText(""); set_children(); set_properties(); set_signals(); set_slots(); set_methods(); emit object_changed(m_obj); }
methodOop mixinOopDesc::remove_method_at(int index) { methodOop method = method_at(index); set_methods(methods()->copy_remove(index)); return method; }
void mixinOopDesc::apply_mixin(mixinOop m) { set_methods(m->methods()); }