当前位置: 首页>>代码示例>>C++>>正文


C++ oop::is_objVector方法代码示例

本文整理汇总了C++中oop::is_objVector方法的典型用法代码示例。如果您正苦于以下问题:C++ oop::is_objVector方法的具体用法?C++ oop::is_objVector怎么用?C++ oop::is_objVector使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在oop的用法示例。


在下文中一共展示了oop::is_objVector方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ov_at_put_prim

oop objVectorOopClass::ov_at_put_prim(oop rcvr, oop indexOop, oop contents) {
  if (!rcvr->is_objVector()) return ErrorCodes::vmString_prim_error(BADTYPEERROR);
  if (!indexOop->is_smi()) return ErrorCodes::vmString_prim_error(BADTYPEERROR);
  smi index = smiOop(indexOop)->value();
  if (unsigned(index) >= unsigned(objVectorOop(rcvr)->length()))
    return ErrorCodes::vmString_prim_error(BADINDEXERROR);
  objVectorOop(rcvr)->obj_at_put(index, contents);
  return rcvr;
}
开发者ID:ardeujho,项目名称:self,代码行数:9,代码来源:objVectorOop.cpp

示例2: do_edge

void graph_creator::do_edge(call_graph_edge* e) {
  oop node_oop;
  if (e->is_fold_edge()) {
    node_oop = clone_fold_edge_pt((fold_edge*) e);
  } else {
    call_graph_node* n = e->callee;
    if (n->is_method_node()) {
      node_oop = clone_method_pt((method_node*) n);
    } else if (n->is_block_node()) {
      node_oop = clone_block_pt((block_node*) n);
    } else if (n->is_prim_node()) {
      node_oop = clone_prim_node_pt((prim_node*) n);
    } else if (n->is_access_node()) {
      node_oop = clone_access_node_pt((access_node*) n);
    } else if (n->is_leaf_node()) {
      node_oop = clone_leaf_node_pt((leaf_node*) n);
    } else {
      fatal("unexpected node type in call graph");
    }
  }
  if (node_oop == failedAllocationOop) {
    out_of_memory= true;
    return;
  }
  if (parent) {
    assert(parent->is_objVector(), "should be an objVector");
    // fill in an element in the parent vector
    objVectorOop p = objVectorOop(parent);
    assert( p->obj_at(index * 2    ) == NULL, "already there\n");
    assert( p->obj_at(index * 2 + 1) == NULL, "already there\n");
    p->obj_at_put(index * 2,     as_smiOop(e->bci));
    p->obj_at_put(index * 2 + 1, node_oop);
    index++;
  } 
  else {
    assert(_root == NULL, "_root already set");
    _root = node_oop;
  }
  
  next_parent = node_oop;
}
开发者ID:AdamSpitz,项目名称:self,代码行数:41,代码来源:nprofiler.copygraph.cpp

示例3: ov_size_prim

oop objVectorOopClass::ov_size_prim(oop rcvr) {
  if (!rcvr->is_objVector()) return ErrorCodes::vmString_prim_error(BADTYPEERROR);
  return as_smiOop(objVectorOop(rcvr)->length());
}
开发者ID:ardeujho,项目名称:self,代码行数:4,代码来源:objVectorOop.cpp


注:本文中的oop::is_objVector方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。