Interop, backend: remove code avoiding zero-length C arrays
This commit is contained in:
committed by
SvyatoslavScherbina
parent
8dc42bbe35
commit
badecf8210
+1
-1
@@ -319,7 +319,7 @@ fun buildNativeIndexImpl(headerFile: File, args: List<String>): NativeIndex {
|
||||
indexEntityReference.value = null
|
||||
}
|
||||
|
||||
val commandLineArgs = if (args1.size != 0) nativeHeap.allocArrayOfPointersTo(*args1)[0].ptr else null
|
||||
val commandLineArgs = nativeHeap.allocArrayOfPointersTo(*args1)[0].ptr
|
||||
|
||||
clang_indexSourceFile(indexAction, clientData, callbacks.ptr, IndexerCallbacks.size.toInt(),
|
||||
0, headerFile.path, commandLineArgs, args1.size, null, 0, null, 0)
|
||||
|
||||
+2
-2
@@ -123,7 +123,7 @@ internal class CodeGenerator(override val context: Context) : ContextUtils {
|
||||
result: String?): LLVMValueRef {
|
||||
|
||||
memScoped {
|
||||
val rargs = if (args.size != 0) allocArrayOf(args)[0].ptr else null
|
||||
val rargs = allocArrayOf(args)[0].ptr
|
||||
return LLVMBuildInvoke(builder, llvmFunction, rargs, args.size, then, landingpad, result)!!
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ internal class CodeGenerator(override val context: Context) : ContextUtils {
|
||||
|
||||
fun call(llvmFunction: LLVMValueRef?, args: List<LLVMValueRef?>, result: String?): LLVMValueRef {
|
||||
memScoped {
|
||||
val rargs = if (args.size != 0) allocArrayOf(args)[0].ptr else null
|
||||
val rargs = allocArrayOf(args)[0].ptr
|
||||
return LLVMBuildCall(builder, llvmFunction, rargs, args.size, result)!!
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -116,7 +116,6 @@ internal fun getLlvmFunctionType(function: FunctionDescriptor): LLVMTypeRef? {
|
||||
val paramTypes:List<LLVMTypeRef?> = params.map { getLLVMType(it.type) }
|
||||
extraParam += paramTypes
|
||||
|
||||
if (extraParam.size == 0) return LLVMFunctionType(returnType, null, 0, 0)
|
||||
memScoped {
|
||||
val paramTypesPtr = allocArrayOf(extraParam)[0].ptr
|
||||
return LLVMFunctionType(returnType, paramTypesPtr, extraParam.size, 0)
|
||||
@@ -159,6 +158,6 @@ internal fun ContextUtils.externalGlobal(name: String, type: LLVMTypeRef): LLVMV
|
||||
|
||||
internal fun functionType(returnType: LLVMTypeRef?, isVarArg: Boolean = false, vararg paramTypes: LLVMTypeRef?) =
|
||||
memScoped {
|
||||
val paramTypesPtr = if (paramTypes.size != 0) allocArrayOf(*paramTypes)[0].ptr else null
|
||||
val paramTypesPtr = allocArrayOf(*paramTypes)[0].ptr
|
||||
LLVMFunctionType(returnType, paramTypesPtr, paramTypes.size, if (isVarArg) 1 else 0)!!
|
||||
}
|
||||
+1
-6
@@ -64,12 +64,7 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils {
|
||||
val fieldTypes = fields.map { getLLVMType(it.returnType!!) }.toTypedArray()
|
||||
|
||||
memScoped {
|
||||
val fieldTypesNativeArrayPtr = if (fieldTypes.size > 0) {
|
||||
allocArrayOf(*fieldTypes)[0].ptr
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
||||
val fieldTypesNativeArrayPtr = allocArrayOf(*fieldTypes)[0].ptr
|
||||
LLVMStructSetBody(classType, fieldTypesNativeArrayPtr, fieldTypes.size, 0)
|
||||
}
|
||||
return classType
|
||||
|
||||
Reference in New Issue
Block a user