Skip to content

Commit 0887eb1

Browse files
committed
feat(DaedalusScript): add getInstance for DaedalusSymbol
1 parent ba029b0 commit 0887eb1

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

include/zenkit-capi/DaedalusScript.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ ZKC_API ZkString ZkDaedalusSymbol_getString(ZkDaedalusSymbol const* slf,
137137
ZkDaedalusInstance const* context);
138138
ZKC_API float ZkDaedalusSymbol_getFloat(ZkDaedalusSymbol const* slf, uint16_t index, ZkDaedalusInstance const* context);
139139
ZKC_API int32_t ZkDaedalusSymbol_getInt(ZkDaedalusSymbol const* slf, uint16_t index, ZkDaedalusInstance const* context);
140+
ZKC_API ZkDaedalusInstance* ZkDaedalusSymbol_getInstance(ZkDaedalusSymbol* slf);
140141
ZKC_API void
141142
ZkDaedalusSymbol_setString(ZkDaedalusSymbol* slf, ZkString value, uint16_t index, ZkDaedalusInstance* context);
142143
ZKC_API void ZkDaedalusSymbol_setFloat(ZkDaedalusSymbol* slf, float value, uint16_t index, ZkDaedalusInstance* context);

src/DaedalusScript.cc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,17 @@ int32_t ZkDaedalusSymbol_getInt(ZkDaedalusSymbol const* slf, uint16_t index, ZkD
101101
ZKC_RETURN_CATCH(slf->get_int(index, context ? context->get() : nullptr));
102102
}
103103

104+
ZkDaedalusInstance* ZkDaedalusSymbol_getInstance(ZkDaedalusSymbol* slf) {
105+
ZKC_CHECK_NULL(slf, slf);
106+
107+
try {
108+
auto& instance = slf->get_instance();
109+
return new ZkDaedalusInstance(instance);
110+
} catch (std::runtime_error& e) {
111+
return nullptr;
112+
}
113+
}
114+
104115
void ZkDaedalusSymbol_setString(ZkDaedalusSymbol* slf, ZkString value, uint16_t index, ZkDaedalusInstance* context) {
105116
ZKC_CHECK_NULLV(slf, value);
106117
ZKC_CATCH(slf->set_string(value, index, context ? context->get() : nullptr));

0 commit comments

Comments
 (0)