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


C++ objArrayOop::base方法代码示例

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


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

示例1: oop_oop_iterate_elements_specialized

void ObjArrayKlass::oop_oop_iterate_elements_specialized(objArrayOop a, OopClosureType* closure) {
  T* p         = (T*)a->base();
  T* const end = p + a->length();

  for (;p < end; p++) {
    Devirtualizer<nv>::do_oop(closure, p);
  }
}
开发者ID:shelan,项目名称:jdk9-mirror,代码行数:8,代码来源:objArrayKlass.inline.hpp

示例2: oop_oop_iterate_range_specialized

void ObjArrayKlass::oop_oop_iterate_range_specialized(objArrayOop a, OopClosureType* closure, int start, int end) {
  if (Devirtualizer<nv>::do_metadata(closure)) {
    Devirtualizer<nv>::do_klass(closure, a->klass());
  }

  T* low = start == 0 ? cast_from_oop<T*>(a) : a->obj_at_addr<T>(start);
  T* high = (T*)a->base() + end;

  oop_oop_iterate_elements_specialized_bounded<nv, T>(a, closure, low, high);
}
开发者ID:shelan,项目名称:jdk9-mirror,代码行数:10,代码来源:objArrayKlass.inline.hpp

示例3: oop_pc_follow_contents_specialized

inline void oop_pc_follow_contents_specialized(objArrayOop obj, int index, ParCompactionManager* cm) {
  const size_t len = size_t(obj->length());
  const size_t beg_index = size_t(index);
  assert(beg_index < len || len == 0, "index too large");

  const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
  const size_t end_index = beg_index + stride;
  T* const base = (T*)obj->base();
  T* const beg = base + beg_index;
  T* const end = base + end_index;

  // Push the non-NULL elements of the next stride on the marking stack.
  for (T* e = beg; e < end; e++) {
    cm->mark_and_push<T>(e);
  }

  if (end_index < len) {
    cm->push_objarray(obj, end_index); // Push the continuation.
  }
}
开发者ID:gaoxiaojun,项目名称:dync,代码行数:20,代码来源:psCompactionManager.inline.hpp

示例4: oop_oop_iterate_elements_specialized_bounded

void ObjArrayKlass::oop_oop_iterate_elements_specialized_bounded(
    objArrayOop a, OopClosureType* closure, void* low, void* high) {

  T* const l = (T*)low;
  T* const h = (T*)high;

  T* p   = (T*)a->base();
  T* end = p + a->length();

  if (p < l) {
    p = l;
  }
  if (end > h) {
    end = h;
  }

  for (;p < end; ++p) {
    Devirtualizer<nv>::do_oop(closure, p);
  }
}
开发者ID:shelan,项目名称:jdk9-mirror,代码行数:20,代码来源:objArrayKlass.inline.hpp

示例5: oop_oop_iterate_range_specialized

void ObjArrayKlass::oop_oop_iterate_range_specialized(objArrayOop a, OopClosureType* closure, int start, int end) {
  T* low = start == 0 ? cast_from_oop<T*>(a) : a->obj_at_addr<T>(start);
  T* high = (T*)a->base() + end;

  oop_oop_iterate_elements_specialized_bounded<nv, T>(a, closure, low, high);
}
开发者ID:campolake,项目名称:openjdk9,代码行数:6,代码来源:objArrayKlass.inline.hpp


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