Files
swift-mirror/lib/Basic/BasicBridging.cpp
Rintaro Ishizaki 7486cd1c21 [SwiftCompiler] Move common bridging facilities to 'Basic'
A preparation for AST/DiagnosticEngine bridging
2022-02-20 22:06:39 -08:00

32 lines
1.2 KiB
C++

//===--- BasicBridging.cpp - Utilities for swift bridging -----------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2022 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
#include "swift/Basic/BridgingUtils.h"
#include "swift/Basic/LLVM.h"
#include "llvm/Support/raw_ostream.h"
using namespace swift;
//===----------------------------------------------------------------------===//
// Bridging C functions
//===----------------------------------------------------------------------===//
void OStream_write(BridgedOStream os, BridgedStringRef str) {
static_cast<raw_ostream *>(os.streamAddr)
->write((const char *)(str.data), str.length);
}
/// Frees a string which was allocated by getCopiedBridgedStringRef.
void freeBridgedStringRef(BridgedStringRef str) {
llvm::MallocAllocator().Deallocate(str.data, str.length);
}