Skip to content

Commit 1070279

Browse files
authored
Merge pull request #76436 from rintaro/basic-remove-llvmjson
[Basic] Remove llvm::JSON C bridging
2 parents e57d7d6 + d7303d1 commit 1070279

File tree

2 files changed

+0
-293
lines changed

2 files changed

+0
-293
lines changed

include/swift/Basic/BasicBridging.h

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -413,72 +413,6 @@ class BridgedCharSourceRangeVector {
413413
#endif
414414
};
415415

416-
//===----------------------------------------------------------------------===//
417-
// MARK: Plugins
418-
//===----------------------------------------------------------------------===//
419-
420-
SWIFT_BEGIN_ASSUME_NONNULL
421-
422-
/// Create a new root 'null' JSON value. Clients must call \c JSON_value_delete
423-
/// after using it.
424-
void *JSON_newValue();
425-
426-
/// Parse \p data as a JSON data and return the top-level value. Clients must
427-
/// call \c JSON_value_delete after using it.
428-
void *JSON_deserializedValue(BridgedData data);
429-
430-
/// Serialize a value and populate \p result with the result data. Clients
431-
/// must call \c BridgedData_free after using the \p result.
432-
void JSON_value_serialize(void *valuePtr, BridgedData *result);
433-
434-
/// Destroy and release the memory for \p valuePtr that is a result from
435-
/// \c JSON_newValue() or \c JSON_deserializedValue() .
436-
void JSON_value_delete(void *valuePtr);
437-
438-
bool JSON_value_getAsNull(void *valuePtr);
439-
bool JSON_value_getAsBoolean(void *valuePtr, bool *result);
440-
bool JSON_value_getAsString(void *valuePtr, BridgedData *result);
441-
bool JSON_value_getAsDouble(void *valuePtr, double *result);
442-
bool JSON_value_getAsInteger(void *valuePtr, int64_t *result);
443-
bool JSON_value_getAsObject(void *valuePtr, void *_Nullable *_Nonnull result);
444-
bool JSON_value_getAsArray(void *valuePtr, void *_Nullable *_Nonnull result);
445-
446-
size_t JSON_object_getSize(void *objectPtr);
447-
BridgedData JSON_object_getKey(void *objectPtr, size_t i);
448-
bool JSON_object_hasKey(void *objectPtr, const char *key);
449-
void *JSON_object_getValue(void *objectPtr, const char *key);
450-
451-
size_t JSON_array_getSize(void *arrayPtr);
452-
void *JSON_array_getValue(void *arrayPtr, size_t index);
453-
454-
void JSON_value_emplaceNull(void *valuePtr);
455-
void JSON_value_emplaceBoolean(void *valuePtr, bool value);
456-
void JSON_value_emplaceString(void *valuePtr, const char *value);
457-
void JSON_value_emplaceDouble(void *valuePtr, double value);
458-
void JSON_value_emplaceInteger(void *valuePtr, int64_t value);
459-
void *JSON_value_emplaceNewObject(void *valuePtr);
460-
void *JSON_value_emplaceNewArray(void *valuePtr);
461-
462-
void JSON_object_setNull(void *objectPtr, const char *key);
463-
void JSON_object_setBoolean(void *objectPtr, const char *key, bool value);
464-
void JSON_object_setString(void *objectPtr, const char *key, const char *value);
465-
void JSON_object_setDouble(void *objectPtr, const char *key, double value);
466-
void JSON_object_setInteger(void *objectPtr, const char *key, int64_t value);
467-
void *JSON_object_setNewObject(void *objectPtr, const char *key);
468-
void *JSON_object_setNewArray(void *objectPtr, const char *key);
469-
void *JSON_object_setNewValue(void *objectPtr, const char *key);
470-
471-
void JSON_array_pushNull(void *arrayPtr);
472-
void JSON_array_pushBoolean(void *arrayPtr, bool value);
473-
void JSON_array_pushString(void *arrayPtr, const char *value);
474-
void JSON_array_pushDouble(void *arrayPtr, double value);
475-
void JSON_array_pushInteger(void *arrayPtr, int64_t value);
476-
void *JSON_array_pushNewObject(void *arrayPtr);
477-
void *JSON_array_pushNewArray(void *arrayPtr);
478-
void *JSON_array_pushNewValue(void *arrayPtr);
479-
480-
SWIFT_END_ASSUME_NONNULL
481-
482416
SWIFT_END_NULLABILITY_ANNOTATIONS
483417

484418
#ifndef PURE_BRIDGING_MODE

lib/Basic/BasicBridging.cpp

Lines changed: 0 additions & 227 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "swift/Basic/Assertions.h"
1414
#include "swift/Basic/BasicBridging.h"
1515
#include "llvm/Support/Debug.h"
16-
#include "llvm/Support/JSON.h"
1716
#include "llvm/Support/raw_ostream.h"
1817

1918
#ifdef PURE_BRIDGING_MODE
@@ -95,229 +94,3 @@ void BridgedCharSourceRangeVector::push_back(BridgedCharSourceRange range) {
9594
static_cast<std::vector<CharSourceRange> *>(vector)->push_back(
9695
range.unbridged());
9796
}
98-
99-
//===----------------------------------------------------------------------===//
100-
// MARK: JSON
101-
//===----------------------------------------------------------------------===//
102-
103-
void *JSON_newValue() { return new llvm::json::Value(nullptr); }
104-
105-
void *JSON_deserializedValue(BridgedData data) {
106-
auto result = llvm::json::parse({data.BaseAddress, data.Length});
107-
if (!result) {
108-
return nullptr;
109-
}
110-
return new llvm::json::Value(std::move(*result));
111-
}
112-
113-
void JSON_value_serialize(void *value, BridgedData *out) {
114-
llvm::SmallVector<char, 0> result;
115-
llvm::raw_svector_ostream OS(result);
116-
OS << *static_cast<llvm::json::Value *>(value);
117-
118-
auto outPtr = malloc(result.size());
119-
memcpy(outPtr, result.data(), result.size());
120-
*out = BridgedData{(const char *)outPtr, (size_t)result.size()};
121-
}
122-
123-
void JSON_value_delete(void *value) {
124-
delete static_cast<llvm::json::Value *>(value);
125-
}
126-
127-
bool JSON_value_getAsNull(void *value) {
128-
if (auto val = static_cast<llvm::json::Value *>(value)->getAsNull()) {
129-
return true;
130-
}
131-
return false;
132-
}
133-
134-
bool JSON_value_getAsBoolean(void *value, bool *result) {
135-
if (auto val = static_cast<llvm::json::Value *>(value)->getAsBoolean()) {
136-
*result = *val;
137-
return false;
138-
}
139-
return true;
140-
}
141-
142-
bool JSON_value_getAsDouble(void *value, double *result) {
143-
if (auto val = static_cast<llvm::json::Value *>(value)->getAsNumber()) {
144-
*result = *val;
145-
return false;
146-
}
147-
return true;
148-
}
149-
150-
bool JSON_value_getAsInteger(void *value, int64_t *result) {
151-
if (auto val = static_cast<llvm::json::Value *>(value)->getAsInteger()) {
152-
*result = *val;
153-
return false;
154-
}
155-
return true;
156-
}
157-
158-
bool JSON_value_getAsString(void *value, BridgedData *result) {
159-
if (auto val = static_cast<llvm::json::Value *>(value)->getAsString()) {
160-
*result = {val->data(), val->size()};
161-
return false;
162-
}
163-
return true;
164-
}
165-
166-
bool JSON_value_getAsObject(void *value, void **result) {
167-
if (auto val = static_cast<llvm::json::Value *>(value)->getAsObject()) {
168-
*result = val;
169-
return false;
170-
}
171-
return true;
172-
}
173-
bool JSON_value_getAsArray(void *value, void **result) {
174-
if (auto val = static_cast<llvm::json::Value *>(value)->getAsArray()) {
175-
*result = val;
176-
return false;
177-
}
178-
return true;
179-
}
180-
181-
size_t JSON_object_getSize(void *objectPtr) {
182-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
183-
return object->size();
184-
}
185-
186-
BridgedData JSON_object_getKey(void *objectPtr, size_t i) {
187-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
188-
std::map<int, float> map;
189-
auto iter = object->begin();
190-
std::advance(iter, i);
191-
auto str = llvm::StringRef(iter->first);
192-
return {str.data(), str.size()};
193-
}
194-
195-
bool JSON_object_hasKey(void *objectPtr, const char *key) {
196-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
197-
return object->find(key) != object->end();
198-
}
199-
void *JSON_object_getValue(void *objectPtr, const char *key) {
200-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
201-
return object->get(key);
202-
}
203-
204-
size_t JSON_array_getSize(void *objectPtr) {
205-
llvm::json::Array *array = static_cast<llvm::json::Array *>(objectPtr);
206-
return array->size();
207-
}
208-
void *JSON_array_getValue(void *objectPtr, size_t index) {
209-
llvm::json::Array *array = static_cast<llvm::json::Array *>(objectPtr);
210-
return array->data() + index;
211-
}
212-
213-
void JSON_value_emplaceNull(void *valuePtr) {
214-
auto *value = static_cast<llvm::json::Value *>(valuePtr);
215-
*value = nullptr;
216-
}
217-
void JSON_value_emplaceBoolean(void *valuePtr, bool newValue) {
218-
auto *value = static_cast<llvm::json::Value *>(valuePtr);
219-
*value = newValue;
220-
}
221-
void JSON_value_emplaceString(void *valuePtr, const char *newValue) {
222-
auto *value = static_cast<llvm::json::Value *>(valuePtr);
223-
*value = std::string(newValue);
224-
}
225-
void JSON_value_emplaceDouble(void *valuePtr, double newValue) {
226-
auto *value = static_cast<llvm::json::Value *>(valuePtr);
227-
*value = newValue;
228-
}
229-
void JSON_value_emplaceInteger(void *valuePtr, int64_t newValue) {
230-
auto *value = static_cast<llvm::json::Value *>(valuePtr);
231-
*value = newValue;
232-
}
233-
void *JSON_value_emplaceNewObject(void *valuePtr) {
234-
auto *value = static_cast<llvm::json::Value *>(valuePtr);
235-
*value = llvm::json::Object();
236-
return value->getAsObject();
237-
}
238-
void *JSON_value_emplaceNewArray(void *valuePtr) {
239-
auto *value = static_cast<llvm::json::Value *>(valuePtr);
240-
*value = llvm::json::Array();
241-
return value->getAsArray();
242-
}
243-
244-
void JSON_object_setNull(void *objectPtr, const char *key) {
245-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
246-
auto keyStr = std::string(key);
247-
(*object)[keyStr] = nullptr;
248-
}
249-
void JSON_object_setBoolean(void *objectPtr, const char *key, bool value) {
250-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
251-
auto keyStr = std::string(key);
252-
(*object)[keyStr] = value;
253-
}
254-
void JSON_object_setString(void *objectPtr, const char *key,
255-
const char *value) {
256-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
257-
auto keyStr = std::string(key);
258-
(*object)[keyStr] = std::string(value);
259-
}
260-
void JSON_object_setDouble(void *objectPtr, const char *key, double value) {
261-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
262-
auto keyStr = std::string(key);
263-
(*object)[keyStr] = value;
264-
}
265-
void JSON_object_setInteger(void *objectPtr, const char *key, int64_t value) {
266-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
267-
auto keyStr = std::string(key);
268-
(*object)[keyStr] = value;
269-
}
270-
void *JSON_object_setNewObject(void *objectPtr, const char *key) {
271-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
272-
auto keyStr = std::string(key);
273-
(*object)[keyStr] = llvm::json::Object();
274-
return object->getObject(keyStr);
275-
}
276-
void *JSON_object_setNewArray(void *objectPtr, const char *key) {
277-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
278-
auto keyStr = std::string(key);
279-
(*object)[keyStr] = llvm::json::Array();
280-
return object->getArray(keyStr);
281-
}
282-
void *JSON_object_setNewValue(void *objectPtr, const char *key) {
283-
llvm::json::Object *object = static_cast<llvm::json::Object *>(objectPtr);
284-
auto keyStr = std::string(key);
285-
(*object)[keyStr] = llvm::json::Value(nullptr);
286-
return object->get(keyStr);
287-
}
288-
289-
void JSON_array_pushNull(void *arrayPtr) {
290-
llvm::json::Array *array = static_cast<llvm::json::Array *>(arrayPtr);
291-
array->emplace_back(nullptr);
292-
}
293-
void JSON_array_pushBoolean(void *arrayPtr, bool value) {
294-
llvm::json::Array *array = static_cast<llvm::json::Array *>(arrayPtr);
295-
array->emplace_back(value);
296-
}
297-
void JSON_array_pushString(void *arrayPtr, const char *value) {
298-
llvm::json::Array *array = static_cast<llvm::json::Array *>(arrayPtr);
299-
array->emplace_back(std::string(value));
300-
}
301-
void JSON_array_pushDouble(void *arrayPtr, double value) {
302-
llvm::json::Array *array = static_cast<llvm::json::Array *>(arrayPtr);
303-
array->emplace_back(value);
304-
}
305-
void JSON_array_pushInteger(void *arrayPtr, int64_t value) {
306-
llvm::json::Array *array = static_cast<llvm::json::Array *>(arrayPtr);
307-
array->emplace_back(value);
308-
}
309-
void *JSON_array_pushNewObject(void *arrayPtr) {
310-
llvm::json::Array *array = static_cast<llvm::json::Array *>(arrayPtr);
311-
array->emplace_back(llvm::json::Object());
312-
return array->back().getAsObject();
313-
}
314-
void *JSON_array_pushNewArray(void *arrayPtr) {
315-
llvm::json::Array *array = static_cast<llvm::json::Array *>(arrayPtr);
316-
array->emplace_back(llvm::json::Array());
317-
return array->back().getAsArray();
318-
}
319-
void *JSON_array_pushNewValue(void *arrayPtr) {
320-
llvm::json::Array *array = static_cast<llvm::json::Array *>(arrayPtr);
321-
array->emplace_back(nullptr);
322-
return &array->back();
323-
}

0 commit comments

Comments
 (0)