@Override public Collection<CsmParameter> getParameters() { return ((CsmFunctionPointerType) originalType).getParameters(); } }
@Override public Collection<CsmParameter> getParameters() { return ((CsmFunctionPointerType) instantiatedType).getParameters(); }
@Override public CsmType[] extract(CsmType type) { CsmFunctionPointerType funPtrType = tryGetFunctionPointerType(type); if (funPtrType != null) { Collection<CsmParameter> params = funPtrType.getParameters(); if (params != null && index < params.size()) { int current = 0; Iterator<CsmParameter> paramsIter = params.iterator(); while (index != current) { paramsIter.next(); ++current; } CsmParameter param = paramsIter.next(); return new CsmType[]{param.getType()}; } } return null; }
Iterator<CsmParameter> paramIter = funPtrType.getParameters().iterator(); while (paramIter.hasNext()) { CsmType paramType = paramIter.next().getType();
if (declSpecFunType.getParameters().size() == paramFunType.getParameters().size()) { match += 1;
private static CsmObject updateAndFindInFunctionType(CsmContext context, CsmFunctionPointerType funType, int offset) { if (CsmOffsetUtilities.isInObject(funType, offset)) { // add scope to context CsmContextUtilities.updateContext(funType, offset, context); Collection<CsmParameter> params = funType.getParameters(); CsmParameter param = CsmOffsetUtilities.findObject(params, context, offset); if (param != null && !CsmOffsetUtilities.sameOffsets(funType, param)) { CsmType type = param.getType(); if (CsmKindUtilities.isFunctionPointerType(type)) { CsmObject inner = updateAndFindInFunctionType(context, (CsmFunctionPointerType) type, offset); if (inner != null) { return inner; } } // if (CsmOffsetUtilities.isInObject(type, offset)) { // context.setLastObject(type); // return type; // } context.setLastObject(param); return param; } } return null; }
((CsmFunctionPointerType) type).getParameters(), null, offset); if (deeperParameter != null) { parameter = deeperParameter; ((CsmFunctionPointerType) type).getParameters(), null, offset); if (deeperParameter != null) { parameter = deeperParameter;