예제 #1
0
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));
}
예제 #2
0
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);
}
예제 #4
0
methodOop mixinOopDesc::remove_method_at(int index) {
  methodOop method = method_at(index);
  set_methods(methods()->copy_remove(index));
  return method;
}
예제 #5
0
void mixinOopDesc::apply_mixin(mixinOop m) {
  set_methods(m->methods());
}