mirror of
https://onedev.site.tesses.net/crosslang
synced 2026-02-09 01:25:45 +00:00
fix on macos
This commit is contained in:
@@ -5669,7 +5669,9 @@ namespace Tesses::CrossLang {
|
||||
cse.back()->Push(gc,callable->Call(ls,{value}));
|
||||
return false;
|
||||
}
|
||||
gc->BarrierBegin();
|
||||
cls->SetValue(cse.back()->callable->className,key,value);
|
||||
gc->BarrierEnd();
|
||||
cse.back()->Push(gc,value);
|
||||
return false;
|
||||
|
||||
@@ -6277,12 +6279,26 @@ namespace Tesses::CrossLang {
|
||||
if(std::holds_alternative<THeapObjectHolder>(objhold) && std::holds_alternative<std::string>(k))
|
||||
{
|
||||
auto dict= dynamic_cast<TDictionary*>(std::get<THeapObjectHolder>(objhold).obj);
|
||||
|
||||
auto cls = dynamic_cast<TClassObject*>(std::get<THeapObjectHolder>(objhold).obj);
|
||||
|
||||
if(dict != nullptr)
|
||||
{
|
||||
dict->SetValue(std::get<std::string>(k), value);
|
||||
}
|
||||
else if(cls != nullptr)
|
||||
{
|
||||
auto obj=cls->GetValue(cse.back()->callable->className,"set"+std::get<std::string>(k));
|
||||
TCallable* callable;
|
||||
if(GetObjectHeap(obj,callable))
|
||||
{
|
||||
gc->BarrierEnd();
|
||||
|
||||
callable->Call(ls,{value});
|
||||
gc->BarrierBegin();
|
||||
}else {
|
||||
cls->SetValue(cse.back()->callable->className,std::get<std::string>(k),value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stk->Push(gc, objhold);
|
||||
|
||||
Reference in New Issue
Block a user