final String className) {
ConstructorTuple constructorTuple = AspectRegistry.getConstructorTuple(declaringClass, joinPointHash);
Constructor targetConstructor = constructorTuple.getWrapperConstructor();
String declaringClassName = targetConstructor.getDeclaringClass().getName().replace('.', '/');
String constructorDescriptor = AsmHelper.getConstructorDescriptor(targetConstructor);
Signature signature = new ConstructorSignatureImpl(constructorTuple.getDeclaringClass(), constructorTuple);
Type[] argTypes = AsmHelper.getArgumentTypes(targetConstructor);
if (Modifier.isPublic(targetConstructor.getModifiers()) && Modifier.isPublic(declaringClass.getModifiers())) {
invokeConstructorCall(joinPointType, argTypes, cv, className, declaringClassName, constructorDescriptor);
} else {
invokeConstructorCallReflectively(cv);