本文整理汇总了C++中oop::map方法的典型用法代码示例。如果您正苦于以下问题:C++ oop::map方法的具体用法?C++ oop::map怎么用?C++ oop::map使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oop
的用法示例。
在下文中一共展示了oop::map方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: add_obj
void map_enumeration::add_obj(oop obj) {
assert(graph_maps->member(obj->map()->enclosing_mapOop()), "map should be known");
if (!graph_maps->find(obj->map()->enclosing_mapOop())) {
if (obj->is_block()) {
// TO BE FIXED WHEN THE SIC IS BETTER TO KILL BLOCK OOPS WHEN
// A SCOPE TREMINATE. 3/31/93 LB.
// Clone and kill the copy to avoid the problem.
obj = obj->clone();
blockOop(obj)->kill_block();
}
graph_maps->update(obj->map()->enclosing_mapOop(), obj);
}
}
示例2: findNMethodsFor
void findNMethodsFor(oop b) {
// for debugging
if (!b->is_block()) {
lprintf("(warning: not a block)\n");
}
map_to_find = b->map()->enclosing_mapOop();
Memory->code->nmethods_do(findBlkFn);
}
示例3: FScope
FSelfScope::FSelfScope(bool d, MethodLookupKey *key, oop method) :
FScope(d) {
_key = key;
_method = method;
method_map = (methodMap *) method->map();
fint codeLength = method_map->length_codes();
fint slotsLength = method_map->length_slots();
args = new LocationList(slotsLength);
locals = new LocationList(slotsLength);
exprStack = new LocationList(codeLength);
blocks = new BlockLocationList(codeLength);
nlrPoints = new LabelList(codeLength + 1);
nlrPoints->append(NULL);
bool got_one;
method_map->branch_targets(got_one, &branchTargetFlags);
if (got_one) {
branchTargets = new LabelList(branchTargetFlags->length());
for ( int32 i = 0, n = branchTargetFlags->length(); i < n; ++i)
branchTargets->nthPut(i, new Label(theCodeGen->a.printing, NULL), true);
}
else {
branchTargets = NULL;
}
initializedBlockLocations = NULL;
frequentPreemption = theCompiler->generateDebugCode;
// If doing consistent stack alloc for branches, must also
// be sure to copy fixed values when pushing -- dmu
allowPrimitivesToAlterExpressionStack = theCompiler->generateDebugCode;
memoizeAllBlockZaps = theCompiler->generateDebugCode || got_one;
initBlocksInPrologue = got_one;
// VM expects to be able to create memoized blocks and put them in
// locations pointed to by debugging info.
// Since VM gets block locs from expr stack debug info, we
// must create all "memoized" blocks.
createMemoizedBlocks = theCompiler->generateDebugCode;
branchTargetExprStack = new LocationList(codeLength);
allocs = new RegisterState(slotsLength + codeLength);
_scopeID = 0;
scopeDescs = theCodeGen->scopeDescs;
foundLoop = false;
need_epilogue = true;
}