MCPcopy Index your code
hub / github.com/clojure/clojure / emitUnboxed

Method emitUnboxed

src/jvm/clojure/lang/Compiler.java:2278–2309  ·  view source on GitHub ↗
(C context, ObjExpr objx, GeneratorAdapter gen)

Source from the content-addressed store, hash-verified

2276 }
2277
2278 public void emitUnboxed(C context, ObjExpr objx, GeneratorAdapter gen){
2279 if(method != null)
2280 {
2281 MethodExpr.emitTypedArgs(objx, gen, method.getParameterTypes(), args);
2282 gen.visitLineNumber(line, gen.mark());
2283 //Type type = Type.getObjectType(className.replace('.', '/'));
2284 if(context == C.RETURN)
2285 {
2286 ObjMethod method = (ObjMethod) METHOD.deref();
2287 method.emitClearLocals(gen);
2288 }
2289 Object ops = RT.get(Intrinsics.ops, method.toString());
2290 if(ops != null)
2291 {
2292 if(ops instanceof Object[])
2293 {
2294 for(Object op : (Object[])ops)
2295 gen.visitInsn((Integer) op);
2296 }
2297 else
2298 gen.visitInsn((Integer) ops);
2299 }
2300 else
2301 {
2302 Type type = Type.getType(c);
2303 Method m = new Method(methodName, Type.getReturnType(method), Type.getArgumentTypes(method));
2304 gen.visitMethodInsn(INVOKESTATIC, type.getInternalName(), methodName, m.getDescriptor(), c.isInterface());
2305 }
2306 }
2307 else
2308 throw new UnsupportedOperationException("Unboxed emit of unknown member");
2309 }
2310
2311 public void emit(C context, ObjExpr objx, GeneratorAdapter gen){
2312 if(method != null)

Callers

nothing calls this directly

Calls 15

emitTypedArgsMethod · 0.95
emitClearLocalsMethod · 0.95
getMethod · 0.95
getTypeMethod · 0.95
getReturnTypeMethod · 0.95
getArgumentTypesMethod · 0.95
getInternalNameMethod · 0.95
getDescriptorMethod · 0.95
markMethod · 0.80
isInterfaceMethod · 0.80
derefMethod · 0.65
visitLineNumberMethod · 0.45

Tested by

no test coverage detected