mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
fix(libSceJson2): implement constructor and destructor variants
This commit is contained in:
1 parent
9b53fff8dd
commit
c3cfc12523
5 files changed
+249
-207
No files matched your search
@@ -4,6 +4,11 @@ target_include_directories(libSceJson2 PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
configure_windows_unwind(libSceJson2)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
add_test_executable(guest_json_alias_tests ${LIBS_INCLUDE_DIR}/tests/GuestJsonAliases.cpp)
|
||||
target_include_directories(guest_json_alias_tests PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
target_link_libraries(guest_json_alias_tests PRIVATE libSceJson2 libc)
|
||||
configure_windows_unwind(guest_json_alias_tests)
|
||||
add_test(NAME guest_json_aliases COMMAND guest_json_alias_tests)
|
||||
add_test_executable(guest_json_tests ${LIBS_INCLUDE_DIR}/tests/GuestJson.cpp)
|
||||
target_include_directories(guest_json_tests PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
target_link_libraries(guest_json_tests PRIVATE libSceJson2 libc)
|
||||
@@ -91,7 +96,7 @@ if(BUILD_TESTING)
|
||||
ENVIRONMENT "LOCPATH=${numeric_locale_dir}")
|
||||
endif()
|
||||
if(WIN32)
|
||||
set_tests_properties(guest_json guest_json_parser_state guest_json_numeric_locale guest_json_float_settings guest_json_allocator_settings guest_json_value_layout guest_json_value_ownership guest_json_special_float guest_json_element_recovery guest_json_null_recovery guest_json_global_recovery guest_json_string_allocator guest_json_array_allocator guest_json_object_allocator guest_json_value_allocator guest_json_allocator PROPERTIES ENVIRONMENT_MODIFICATION
|
||||
set_tests_properties(guest_json guest_json_aliases guest_json_parser_state guest_json_numeric_locale guest_json_float_settings guest_json_allocator_settings guest_json_value_layout guest_json_value_ownership guest_json_special_float guest_json_element_recovery guest_json_null_recovery guest_json_global_recovery guest_json_string_allocator guest_json_array_allocator guest_json_object_allocator guest_json_value_allocator guest_json_allocator PROPERTIES ENVIRONMENT_MODIFICATION
|
||||
"PATH=path_list_prepend:$<TARGET_FILE_DIR:libSceJson2>;PATH=path_list_prepend:$<TARGET_FILE_DIR:libkernel>;PATH=path_list_prepend:$<TARGET_FILE_DIR:libc>")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -2383,13 +2383,15 @@ void APS5_VABI _ZN3sce4Json5ValueC1El(Value* self, std::int64_t value) { Constru
|
||||
void APS5_VABI _ZN3sce4Json5ValueC1Em(Value* self, std::uint64_t value) { Construct(*self); self->type = TypeUInteger; self->uinteger = value; }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC1Ed(Value* self, double value) { Construct(*self); AssignReal(*self, value); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC1EPKc(Value* self, const char* text) {
|
||||
if (text == nullptr) throw std::invalid_argument("sce::Json::Value: null text");
|
||||
Construct(*self);
|
||||
ScopedString temporary{std::string_view{text ? text : ""}};
|
||||
if (!temporary.string.text) return;
|
||||
SetType(*self, TypeString);
|
||||
if (self->type == TypeString) AssignText(*self->string, text);
|
||||
if (self->type == TypeString) AssignText(*self->string, View(temporary.string), true);
|
||||
}
|
||||
void APS5_VABI _ZN3sce4Json5ValueC1ERKNS0_6StringE(Value* self, const String* text) {
|
||||
Construct(*self);
|
||||
if (!text->text) return;
|
||||
SetType(*self, TypeString);
|
||||
if (self->type == TypeString) AssignText(*self->string, View(*text), true);
|
||||
}
|
||||
@@ -2849,4 +2851,39 @@ void APS5_VABI _ZN3sce4Json6Object4PairC1Ev(Pair* self) {
|
||||
*self = pair;
|
||||
BindChildren(self->value);
|
||||
}
|
||||
|
||||
void APS5_VABI _ZN3sce4Json11InitializerC2Ev(void* self) { _ZN3sce4Json11InitializerC1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json11InitializerD2Ev(void* self) { _ZN3sce4Json11InitializerD1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json17InitParameterRttiC2EPNS0_14AllocParamRttiEPvm(InitParameterRtti* self, void* allocParam, void* userData, std::size_t fileBufferSize) { _ZN3sce4Json17InitParameterRttiC1EPNS0_14AllocParamRttiEPvm(self, allocParam, userData, fileBufferSize); }
|
||||
void APS5_VABI _ZN3sce4Json5Array8iteratorC2ERKS2_(ArrayIterator* self, const ArrayIterator* other) { _ZN3sce4Json5Array8iteratorC1ERKS2_(self, other); }
|
||||
void APS5_VABI _ZN3sce4Json5Array8iteratorC2Ev(ArrayIterator* self) { _ZN3sce4Json5Array8iteratorC1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json5Array8iteratorD2Ev(ArrayIterator* self) { _ZN3sce4Json5Array8iteratorD1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json5ArrayC2ERKS1_(Array* self, const Array* other) { _ZN3sce4Json5ArrayC1ERKS1_(self, other); }
|
||||
void APS5_VABI _ZN3sce4Json5ArrayC2Ev(Array* self) { _ZN3sce4Json5ArrayC1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json5ArrayD2Ev(Array* self) { _ZN3sce4Json5ArrayD1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ENS0_9ValueTypeE(Value* self, ValueType type) { _ZN3sce4Json5ValueC1ENS0_9ValueTypeE(self, type); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2EPKc(Value* self, const char* text) { _ZN3sce4Json5ValueC1EPKc(self, text); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ERKNS0_5ArrayE(Value* self, const Array* array) { _ZN3sce4Json5ValueC1ERKNS0_5ArrayE(self, array); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ERKNS0_6ObjectE(Value* self, const Object* object) { _ZN3sce4Json5ValueC1ERKNS0_6ObjectE(self, object); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ERKNS0_6StringE(Value* self, const String* text) { _ZN3sce4Json5ValueC1ERKNS0_6StringE(self, text); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ERKS1_(Value* self, const Value* other) { _ZN3sce4Json5ValueC1ERKS1_(self, other); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2Eb(Value* self, bool value) { _ZN3sce4Json5ValueC1Eb(self, value); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2Ed(Value* self, double value) { _ZN3sce4Json5ValueC1Ed(self, value); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2El(Value* self, std::int64_t value) { _ZN3sce4Json5ValueC1El(self, value); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2Em(Value* self, std::uint64_t value) { _ZN3sce4Json5ValueC1Em(self, value); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2Ev(Value* self) { _ZN3sce4Json5ValueC1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json5ValueD2Ev(Value* self) { _ZN3sce4Json5ValueD1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json6Object4PairC2ERKNS0_6StringERKNS0_5ValueE(Pair* self, const String* key, const Value* value) { _ZN3sce4Json6Object4PairC1ERKNS0_6StringERKNS0_5ValueE(self, key, value); }
|
||||
void APS5_VABI _ZN3sce4Json6Object4PairC2Ev(Pair* self) { _ZN3sce4Json6Object4PairC1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json6Object4PairD2Ev(Pair* self) { _ZN3sce4Json6Object4PairD1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json6Object8iteratorC2ERKS2_(ObjectIterator* self, const ObjectIterator* other) { _ZN3sce4Json6Object8iteratorC1ERKS2_(self, other); }
|
||||
void APS5_VABI _ZN3sce4Json6Object8iteratorC2Ev(ObjectIterator* self) { _ZN3sce4Json6Object8iteratorC1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json6Object8iteratorD2Ev(ObjectIterator* self) { _ZN3sce4Json6Object8iteratorD1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json6ObjectC2ERKS1_(Object* self, const Object* other) { _ZN3sce4Json6ObjectC1ERKS1_(self, other); }
|
||||
void APS5_VABI _ZN3sce4Json6ObjectC2Ev(Object* self) { _ZN3sce4Json6ObjectC1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json6ObjectD2Ev(Object* self) { _ZN3sce4Json6ObjectD1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json6StringC2EPKc(String* self, const char* text) { _ZN3sce4Json6StringC1EPKc(self, text); }
|
||||
void APS5_VABI _ZN3sce4Json6StringC2ERKS1_(String* self, const String* other) { _ZN3sce4Json6StringC1ERKS1_(self, other); }
|
||||
void APS5_VABI _ZN3sce4Json6StringC2Ev(String* self) { _ZN3sce4Json6StringC1Ev(self); }
|
||||
void APS5_VABI _ZN3sce4Json6StringD2Ev(String* self) { _ZN3sce4Json6StringD1Ev(self); }
|
||||
}
|
||||
@@ -10,16 +10,6 @@ int APS5_VABI _ZN3sce4Json11Initializer24setAllocatorInfoCallBackEPFviNS0_9Value
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json11InitializerC2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json11InitializerD2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json12MemAllocatorD0Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
@@ -30,11 +20,6 @@ int APS5_VABI _ZN3sce4Json12MemAllocatorD1Ev() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json17InitParameterRttiC2EPNS0_14AllocParamRttiEPvm() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json19InternalInitializer19terminate_staticlibEv() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
@@ -85,41 +70,11 @@ int APS5_VABI _ZN3sce4Json5Array6insertERKNS1_8iteratorERKNS0_5ValueE() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5Array8iteratorC2ERKS2_() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5Array8iteratorC2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5Array8iteratorD2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5Array8pop_backEv() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ArrayC2ERKS1_() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ArrayC2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ArrayD2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5Value11referStringEv() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
@@ -155,136 +110,11 @@ int APS5_VABI _ZN3sce4Json5Value9serializeERNS0_6StringEPFiS3_PvES4_() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2ENS0_9ValueTypeE() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2EPKc() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2ERKNS0_5ArrayE() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2ERKNS0_6ObjectE() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2ERKNS0_6StringE() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2ERKS1_() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2Eb() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2Ed() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2El() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2Em() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueC2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json5ValueD2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6MallocEm() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6Object4PairC2ERKNS0_6StringERKNS0_5ValueE() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6Object4PairC2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6Object4PairD2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6Object8iteratorC2ERKS2_() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6Object8iteratorC2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6Object8iteratorD2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6ObjectC2ERKS1_() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6ObjectC2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6ObjectD2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6StringC2EPKc() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6StringC2ERKS1_() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6StringC2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZN3sce4Json6StringD2Ev() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI _ZNK3sce4Json14InitParameter211getUserDataEv() {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
#include "prx/libc/include/general/VabiMacros.hpp"
|
||||
#include <array>
|
||||
#include <bit>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <map>
|
||||
|
||||
struct Value { Value* parent; void* auxiliary; std::uint64_t payload; std::uint32_t reserved; std::int32_t type; };
|
||||
struct String { void* storage; };
|
||||
struct Array { void* storage; };
|
||||
struct Object { void* storage; };
|
||||
struct Iterator { void* state; };
|
||||
struct Pair { String key; std::uint64_t reserved; Value value; };
|
||||
struct Parameter { void* allocator; void* context; std::size_t bufferSize; };
|
||||
using AliasAllocateCallback = void* (APS5_VABI*)(std::size_t, void*);
|
||||
using AliasFreeCallback = void (APS5_VABI*)(void*, void*);
|
||||
using AliasNotifyCallback = void (APS5_VABI*)(int, std::size_t, void*);
|
||||
struct Callbacks { AliasAllocateCallback allocate; AliasFreeCallback free; AliasNotifyCallback notify; };
|
||||
static_assert(sizeof(Value) == 32 && sizeof(Parameter) == 24 && sizeof(Pair) == 48);
|
||||
extern "C" {
|
||||
void APS5_VABI _ZN3sce4Json11InitializerC2Ev(void*);
|
||||
void APS5_VABI _ZN3sce4Json11InitializerD2Ev(void*);
|
||||
void APS5_VABI _ZN3sce4Json17InitParameterRttiC2EPNS0_14AllocParamRttiEPvm(Parameter*, void*, void*, std::size_t);
|
||||
void APS5_VABI _ZN3sce4Json5Array8iteratorC2ERKS2_(Iterator*, const Iterator*);
|
||||
void APS5_VABI _ZN3sce4Json5Array8iteratorC2Ev(Iterator*);
|
||||
void APS5_VABI _ZN3sce4Json5Array8iteratorD2Ev(Iterator*);
|
||||
void APS5_VABI _ZN3sce4Json5ArrayC2ERKS1_(Array*, const Array*);
|
||||
void APS5_VABI _ZN3sce4Json5ArrayC2Ev(Array*);
|
||||
void APS5_VABI _ZN3sce4Json5ArrayD2Ev(Array*);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ENS0_9ValueTypeE(Value*, std::int32_t);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2EPKc(Value*, const char*);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ERKNS0_5ArrayE(Value*, const Array*);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ERKNS0_6ObjectE(Value*, const Object*);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ERKNS0_6StringE(Value*, const String*);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2ERKS1_(Value*, const Value*);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2Eb(Value*, bool);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2Ed(Value*, double);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2El(Value*, std::int64_t);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2Em(Value*, std::uint64_t);
|
||||
void APS5_VABI _ZN3sce4Json5ValueC2Ev(Value*);
|
||||
void APS5_VABI _ZN3sce4Json5ValueD2Ev(Value*);
|
||||
void APS5_VABI _ZN3sce4Json6Object4PairC2ERKNS0_6StringERKNS0_5ValueE(Pair*, const String*, const Value*);
|
||||
void APS5_VABI _ZN3sce4Json6Object4PairC2Ev(Pair*);
|
||||
void APS5_VABI _ZN3sce4Json6Object4PairD2Ev(Pair*);
|
||||
void APS5_VABI _ZN3sce4Json6Object8iteratorC2ERKS2_(Iterator*, const Iterator*);
|
||||
void APS5_VABI _ZN3sce4Json6Object8iteratorC2Ev(Iterator*);
|
||||
void APS5_VABI _ZN3sce4Json6Object8iteratorD2Ev(Iterator*);
|
||||
void APS5_VABI _ZN3sce4Json6ObjectC2ERKS1_(Object*, const Object*);
|
||||
void APS5_VABI _ZN3sce4Json6ObjectC2Ev(Object*);
|
||||
void APS5_VABI _ZN3sce4Json6ObjectD2Ev(Object*);
|
||||
void APS5_VABI _ZN3sce4Json6StringC2EPKc(String*, const char*);
|
||||
void APS5_VABI _ZN3sce4Json6StringC2ERKS1_(String*, const String*);
|
||||
void APS5_VABI _ZN3sce4Json6StringC2Ev(String*);
|
||||
void APS5_VABI _ZN3sce4Json6StringD2Ev(String*);
|
||||
int APS5_VABI _ZN3sce4Json11Initializer10initializeEPKNS0_13InitParameterE(void*, const Parameter*);
|
||||
const char* APS5_VABI _ZNK3sce4Json6String5c_strEv(const String*);
|
||||
void APS5_VABI _ZN3sce4Json5Array9push_backERKNS0_5ValueE(Array*, const Value*);
|
||||
const Value* APS5_VABI _ZNK3sce4Json5Array5frontEv(const Array*);
|
||||
std::size_t APS5_VABI _ZNK3sce4Json5Array4sizeEv(const Array*);
|
||||
Iterator* APS5_VABI _ZNK3sce4Json5Array5beginEv(Iterator*, const Array*);
|
||||
Value* APS5_VABI _ZNK3sce4Json5Array8iteratordeEv(const Iterator*);
|
||||
Iterator* APS5_VABI _ZNK3sce4Json6Object5beginEv(Iterator*, const Object*);
|
||||
const Pair* APS5_VABI _ZNK3sce4Json6Object8iteratordeEv(const Iterator*);
|
||||
std::size_t APS5_VABI _ZNK3sce4Json6Object4sizeEv(const Object*);
|
||||
Value* APS5_VABI _ZN3sce4Json6ObjectixERKNS0_6StringE(Object*, const String*);
|
||||
void APS5_VABI _ZN3sce4Json5Value3setEl(Value*, std::int64_t);
|
||||
const Value* APS5_VABI _ZNK3sce4Json5ValueixEPKc(const Value*, const char*);
|
||||
}
|
||||
static void Require(bool valid, const char* message) {
|
||||
if (!valid) { std::fprintf(stderr, "%s\n", message); std::abort(); }
|
||||
}
|
||||
struct AliasTrace {
|
||||
std::map<void*, std::size_t> live;
|
||||
int budget = -1;
|
||||
bool once = false;
|
||||
std::size_t requests = 0;
|
||||
unsigned notifications = 0;
|
||||
};
|
||||
static void* APS5_VABI AllocateAlias(std::size_t size, void* context) {
|
||||
auto& trace = *static_cast<AliasTrace*>(context);
|
||||
++trace.requests;
|
||||
if (trace.budget == 0) { if (trace.once) trace.budget = -1; return nullptr; }
|
||||
if (trace.budget > 0) --trace.budget;
|
||||
void* memory = std::malloc(size);
|
||||
Require(memory != nullptr, "Alias tracking allocator requires host memory");
|
||||
std::memset(memory, 0xa5, size); trace.live.emplace(memory, size); return memory;
|
||||
}
|
||||
static void APS5_VABI FreeAlias(void* memory, void* context) {
|
||||
if (!memory) return;
|
||||
Require(static_cast<AliasTrace*>(context)->live.erase(memory) == 1, "Alias destruction must free each allocation through its owning context exactly once");
|
||||
std::free(memory);
|
||||
}
|
||||
static void APS5_VABI NotifyAlias(int error, std::size_t, void* context) {
|
||||
Require(static_cast<unsigned>(error) == 0x80848102, "Alias allocation failures must retain the Json2 error");
|
||||
++static_cast<AliasTrace*>(context)->notifications;
|
||||
}
|
||||
static const String* Text(const Value& value) { return reinterpret_cast<const String*>(value.payload); }
|
||||
static void CheckText(const Value& value, const char* expected) {
|
||||
Require(value.type == 5 && value.payload && std::strcmp(_ZNK3sce4Json6String5c_strEv(Text(value)), expected) == 0, "Value constructor variants must preserve string contents");
|
||||
}
|
||||
int main() {
|
||||
AliasTrace trace;
|
||||
Callbacks callbacks{AllocateAlias, FreeAlias, NotifyAlias};
|
||||
alignas(8) std::array<std::byte, 40> settings; settings.fill(std::byte{0xa5});
|
||||
auto* parameter = reinterpret_cast<Parameter*>(settings.data());
|
||||
_ZN3sce4Json17InitParameterRttiC2EPNS0_14AllocParamRttiEPvm(parameter, &callbacks, &trace, 8192);
|
||||
Require(parameter->allocator && parameter->context == &trace && parameter->bufferSize == 8192, "RTTI constructor variant must retain its callbacks, context and buffer setting");
|
||||
for (std::size_t i = sizeof(Parameter); i < settings.size(); ++i) Require(settings[i] == std::byte{0xa5}, "RTTI construction must preserve bytes beyond its parameter block");
|
||||
std::array<unsigned char, 16> initializer; initializer.fill(0xa5);
|
||||
_ZN3sce4Json11InitializerC2Ev(initializer.data());
|
||||
Require(initializer[0] == 0, "Initializer constructor variant must clear its active byte");
|
||||
for (std::size_t i = 1; i < initializer.size(); ++i) Require(initializer[i] == 0xa5, "Initializer construction must preserve every adjacent byte");
|
||||
Require(_ZN3sce4Json11Initializer10initializeEPKNS0_13InitParameterE(initializer.data(), parameter) == 0, "Initialize through the constructor variant and RTTI allocator");
|
||||
const auto baseline = trace.live.size();
|
||||
for (std::int32_t type = 0; type < 8; ++type) {
|
||||
Value value; std::memset(&value, 0xa5, sizeof(value));
|
||||
_ZN3sce4Json5ValueC2ENS0_9ValueTypeE(&value, type);
|
||||
Require(value.type == type && !value.parent && !value.auxiliary && value.reserved == 0xa5a5a5a5, "Typed value constructor variant must retain its type and inactive metadata");
|
||||
_ZN3sce4Json5ValueD2Ev(&value);
|
||||
Require(trace.live.size() == baseline, "Typed constructor/destructor variants must reclaim their handles and storage");
|
||||
}
|
||||
Value value{};
|
||||
_ZN3sce4Json5ValueC2Ev(&value); Require(value.type == 0, "Default value constructor variant must construct null"); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
_ZN3sce4Json5ValueC2Eb(&value, true); Require(value.type == 1 && (value.payload & 255) == 1, "Boolean constructor variant must preserve its payload"); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
_ZN3sce4Json5ValueC2El(&value, -77); Require(value.type == 2 && value.payload == std::bit_cast<std::uint64_t>(std::int64_t{-77}), "Signed constructor variant must preserve all payload bits"); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
_ZN3sce4Json5ValueC2Em(&value, UINT64_MAX); Require(value.type == 3 && value.payload == UINT64_MAX, "Unsigned constructor variant must preserve all payload bits"); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
_ZN3sce4Json5ValueC2Ed(&value, 1.25); Require(value.type == 4 && value.payload == std::bit_cast<std::uint64_t>(1.25), "Real constructor variant must preserve its payload"); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
String empty{}, text{}, copiedText{};
|
||||
_ZN3sce4Json6StringC2Ev(&empty); Require(empty.storage && !*_ZNK3sce4Json6String5c_strEv(&empty), "Default string constructor variant must own empty storage");
|
||||
_ZN3sce4Json6StringC2EPKc(&text, "abc"); _ZN3sce4Json6StringC2ERKS1_(&copiedText, &text);
|
||||
Require(text.storage != copiedText.storage && std::strcmp(_ZNK3sce4Json6String5c_strEv(&copiedText), "abc") == 0, "String copy constructor variant must own independent storage");
|
||||
_ZN3sce4Json5ValueC2EPKc(&value, "abc"); CheckText(value, "abc");
|
||||
Value copiedValue{}; _ZN3sce4Json5ValueC2ERKS1_(&copiedValue, &value); CheckText(copiedValue, "abc");
|
||||
Require(copiedValue.payload != value.payload, "Value copy constructor variant must own an independent handle");
|
||||
_ZN3sce4Json5ValueD2Ev(&copiedValue); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
_ZN3sce4Json5ValueC2ERKNS0_6StringE(&value, &text); CheckText(value, "abc");
|
||||
Require(Text(value)->storage != text.storage, "String-to-value constructor variant must copy storage"); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
Array array{}, copiedArray{}; _ZN3sce4Json5ArrayC2Ev(&array);
|
||||
_ZN3sce4Json5ValueC2El(&value, 42); _ZN3sce4Json5Array9push_backERKNS0_5ValueE(&array, &value);
|
||||
_ZN3sce4Json5ArrayC2ERKS1_(&copiedArray, &array);
|
||||
Require(array.storage != copiedArray.storage && _ZNK3sce4Json5Array4sizeEv(&copiedArray) == 1 && _ZNK3sce4Json5Array5frontEv(&copiedArray)->payload == 42, "Array copy constructor variant must copy its entries into independent storage");
|
||||
Value wrapped{}; _ZN3sce4Json5ValueC2ERKNS0_5ArrayE(&wrapped, &array);
|
||||
const auto* child = _ZNK3sce4Json5Array5frontEv(reinterpret_cast<const Array*>(wrapped.payload));
|
||||
Require(wrapped.type == 6 && child->parent == &wrapped && child->payload == 42, "Array-to-value constructor variant must bind copied children to their owner"); _ZN3sce4Json5ValueD2Ev(&wrapped);
|
||||
Object object{}, copiedObject{}; _ZN3sce4Json6ObjectC2Ev(&object);
|
||||
_ZN3sce4Json5Value3setEl(_ZN3sce4Json6ObjectixERKNS0_6StringE(&object, &text), 42);
|
||||
_ZN3sce4Json6ObjectC2ERKS1_(&copiedObject, &object);
|
||||
Require(object.storage != copiedObject.storage && _ZNK3sce4Json6Object4sizeEv(&copiedObject) == 1, "Object copy constructor variant must own independent tree storage");
|
||||
_ZN3sce4Json5ValueC2ERKNS0_6ObjectE(&wrapped, &object);
|
||||
child = _ZNK3sce4Json5ValueixEPKc(&wrapped, "abc");
|
||||
Require(wrapped.type == 7 && child->parent == &wrapped && child->payload == 42, "Object-to-value constructor variant must bind copied members to their owner"); _ZN3sce4Json5ValueD2Ev(&wrapped);
|
||||
Pair pair{}; _ZN3sce4Json6Object4PairC2Ev(&pair);
|
||||
Require(pair.key.storage && pair.value.type == 0, "Default pair constructor variant must construct its key and null value"); _ZN3sce4Json6Object4PairD2Ev(&pair);
|
||||
_ZN3sce4Json6Object4PairC2ERKNS0_6StringERKNS0_5ValueE(&pair, &text, &value);
|
||||
Require(pair.key.storage != text.storage && pair.value.type == 2 && pair.value.payload == 42, "Pair constructor variant must copy its key and value"); _ZN3sce4Json6Object4PairD2Ev(&pair);
|
||||
Iterator iterator{}, copy{};
|
||||
_ZN3sce4Json5Array8iteratorC2Ev(&iterator); _ZN3sce4Json5Array8iteratorC2ERKS2_(©, &iterator);
|
||||
Require(iterator.state && copy.state && iterator.state != copy.state && !*static_cast<void**>(copy.state), "Default array iterator variants must own independent unbound states");
|
||||
_ZN3sce4Json5Array8iteratorD2Ev(©); _ZN3sce4Json5Array8iteratorD2Ev(&iterator);
|
||||
_ZNK3sce4Json5Array5beginEv(&iterator, &array); _ZN3sce4Json5Array8iteratorC2ERKS2_(©, &iterator);
|
||||
Require(copy.state != iterator.state && _ZNK3sce4Json5Array8iteratordeEv(©) == _ZNK3sce4Json5Array5frontEv(&array), "Array iterator copy variant must preserve the actual element identity");
|
||||
_ZN3sce4Json5Array8iteratorD2Ev(©); _ZN3sce4Json5Array8iteratorD2Ev(&iterator);
|
||||
_ZN3sce4Json6Object8iteratorC2Ev(&iterator); _ZN3sce4Json6Object8iteratorC2ERKS2_(©, &iterator);
|
||||
Require(iterator.state && copy.state && iterator.state != copy.state && !*static_cast<void**>(copy.state), "Default object iterator variants must own independent unbound states");
|
||||
_ZN3sce4Json6Object8iteratorD2Ev(©); _ZN3sce4Json6Object8iteratorD2Ev(&iterator);
|
||||
_ZNK3sce4Json6Object5beginEv(&iterator, &object); _ZN3sce4Json6Object8iteratorC2ERKS2_(©, &iterator);
|
||||
Require(copy.state != iterator.state && _ZNK3sce4Json6Object8iteratordeEv(©) == _ZNK3sce4Json6Object8iteratordeEv(&iterator), "Object iterator copy variant must preserve the actual member identity");
|
||||
_ZN3sce4Json6Object8iteratorD2Ev(©); _ZN3sce4Json6Object8iteratorD2Ev(&iterator);
|
||||
_ZN3sce4Json6ObjectD2Ev(&copiedObject); _ZN3sce4Json6ObjectD2Ev(&object);
|
||||
_ZN3sce4Json5ArrayD2Ev(&copiedArray); _ZN3sce4Json5ArrayD2Ev(&array); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
_ZN3sce4Json6StringD2Ev(&copiedText); _ZN3sce4Json6StringD2Ev(&text); _ZN3sce4Json6StringD2Ev(&empty);
|
||||
Require(trace.live.size() == baseline, "All constructor/destructor variants must reclaim their owned resources");
|
||||
String absent{};
|
||||
const auto requests = trace.requests;
|
||||
_ZN3sce4Json5ValueC2ERKNS0_6StringE(&value, &absent);
|
||||
Require(value.type == 0 && trace.requests == requests, "Missing string storage must leave a null value without allocating"); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
_ZN3sce4Json5ValueC2EPKc(&value, nullptr); CheckText(value, ""); _ZN3sce4Json5ValueD2Ev(&value);
|
||||
struct Failure { bool once; int budget; int type; unsigned notifications; std::size_t requests; const char* text; };
|
||||
const Failure failures[]{
|
||||
{false, 0, 0, 1, 1, ""}, {false, 1, 0, 2, 3, ""},
|
||||
{false, 2, 0, 1, 3, ""}, {false, 3, 0, 1, 4, ""},
|
||||
{false, 4, 5, 1, 5, ""}, {false, 5, 5, 0, 5, "abc"},
|
||||
{true, 0, 0, 1, 1, ""}, {true, 1, 5, 1, 4, ""},
|
||||
{true, 2, 0, 1, 3, ""}, {true, 3, 0, 1, 4, ""},
|
||||
{true, 4, 5, 1, 5, ""}, {true, 5, 5, 0, 5, "abc"},
|
||||
};
|
||||
for (const auto& failure : failures) {
|
||||
const auto notifications = trace.notifications;
|
||||
const auto before = trace.requests;
|
||||
trace.budget = failure.budget; trace.once = failure.once;
|
||||
_ZN3sce4Json5ValueC2EPKc(&value, "abc"); trace.budget = -1; trace.once = false;
|
||||
Require(value.type == failure.type && trace.notifications - notifications == failure.notifications && trace.requests - before == failure.requests, "Text constructor variant must preserve temporary string allocation and failure admission");
|
||||
if (value.type == 5) CheckText(value, failure.text);
|
||||
_ZN3sce4Json5ValueD2Ev(&value);
|
||||
Require(trace.live.size() == baseline, "Failed constructor variants must reclaim their admitted prefix");
|
||||
}
|
||||
_ZN3sce4Json11InitializerD2Ev(initializer.data());
|
||||
Require(initializer[0] == 0 && trace.live.empty(), "Initializer destructor variant must terminate its resources");
|
||||
for (std::size_t i = 1; i < initializer.size(); ++i) Require(initializer[i] == 0xa5, "Initializer destruction must preserve every adjacent byte");
|
||||
return 0;
|
||||
}
|
||||
@@ -53,11 +53,8 @@
|
||||
### Unknown 3.20 import declarations
|
||||
|
||||
- [_ZN3sce4Json11Initializer24setAllocatorInfoCallBackEPFviNS0_9ValueTypeEPvES3_](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `R996H0YIhiQ` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json11InitializerC2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `6qFqND4iwPA` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json11InitializerD2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `qQZGdYkEytk` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json12MemAllocatorD0Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `ypazoTrKYhE` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json12MemAllocatorD1Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `O1uwoqazS2A` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json17InitParameterRttiC2EPNS0_14AllocParamRttiEPvm](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `Mp8DPb3M4I0` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json19InternalInitializer19terminate_staticlibEv](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `dvp2zGSQzMs` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json19InternalInitializer20initialize_staticlibEPKNS0_13InitParameterENS1_10InitOptionE](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `BPSPc3pUMJo` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json19InternalInitializerC1Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `WntRKhYTmZw` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
@@ -68,13 +65,7 @@
|
||||
- [_ZN3sce4Json5Array10push_frontERKNS0_5ValueE](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `MQxDxBzWz40` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Array5eraseERKNS1_8iteratorE](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `2mbVAtshWRI` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Array6insertERKNS1_8iteratorERKNS0_5ValueE](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `ixJAz92H1uE` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Array8iteratorC2ERKS2_](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `Hdc3DSIsG2I` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Array8iteratorC2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `JSg1MSo7NKE` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Array8iteratorD2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `9niNrXsF3Bc` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Array8pop_backEv](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `woec1toi4Xw` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ArrayC2ERKS1_](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `6NlbpyIfUuY` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ArrayC2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `t6AHhkWu4mY` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ArrayD2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `MIyMPw7YTGM` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Value11referStringEv](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `m5J28iw-QPs` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Value12referBooleanEv](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `QxjfcfBhEdc` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Value12referIntegerEv](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `R0ac5QOdlpo` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
@@ -82,32 +73,7 @@
|
||||
- [_ZN3sce4Json5Value9referRealEv](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `t7UEJrhojhk` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Value9serializeEPFiRNS0_6StringEPvES4_](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `PyMbL9F2oBY` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5Value9serializeERNS0_6StringEPFiS3_PvES4_](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `l1URiQJlSoU` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2ENS0_9ValueTypeE](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `PWm9MyJJVqU` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2EPKc](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `+hHa4QYtLY8` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2ERKNS0_5ArrayE](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `VH9dsKpQTmk` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2ERKNS0_6ObjectE](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `JXlrCLLCLmc` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2ERKNS0_6StringE](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `veNviXt6wC0` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2ERKS1_](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `TZyuFeGuw9Y` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2Eb](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `OK4Ot0ue7J0` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2Ed](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `23nm4oXHlfI` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2El](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `EjxUpzR2Yx8` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2Em](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `cqucBPSeVDA` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueC2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `-wa17B7TGnw` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json5ValueD2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `0eUrW9JAxM0` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6MallocEm](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `Xzy0onDzSAc` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6Object4PairC2ERKNS0_6StringERKNS0_5ValueE](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `lt3J4dPvEtM` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6Object4PairC2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `Wu-urs6MMpQ` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6Object4PairD2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `TM0Sj+Ebins` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6Object8iteratorC2ERKS2_](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `r5CShmcua+M` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6Object8iteratorC2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `OxO+V0ouoS4` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6Object8iteratorD2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `patTzc7zBjw` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6ObjectC2ERKS1_](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `tSRqQ-+Y4PE` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6ObjectC2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `SkKczWHdklc` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6ObjectD2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `1siRBursJjw` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6StringC2EPKc](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `N78gkQzXRL4` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6StringC2ERKS1_](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `gALFgNfF+9I` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6StringC2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `eG9E9M6XvTM` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZN3sce4Json6StringD2Ev](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `Ui7YFnSTCBw` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZNK3sce4Json14InitParameter211getUserDataEv](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `GWtzpTKbZ+0` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZNK3sce4Json14InitParameter212getAllocatorEv](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `BykPm1ajcM0` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
- [_ZNK3sce4Json14InitParameter217getFileBufferSizeEv](../../../core/libs/prx/libSceJson2/InventoryExports.cpp) (libSceJson2) - NID `Pcg6xQUhq9E` from the PS5 3.20 export inventory; prototype and behavior are unverified. Declaration is for import resolution only.
|
||||
|
||||
Reference in new issue
Block a user