Rework for git.tesses.org, GC* is std::shared_ptr maybe will fix crash during exit
All checks were successful
Build and Deploy on Tag / build-arch (push) Successful in 16m35s
Build and Deploy on Tag / update-tap (push) Successful in 6m21s

This commit is contained in:
2026-05-01 11:28:36 -05:00
parent f23a3880d4
commit 28eff630c6
8 changed files with 123 additions and 344 deletions

View File

@@ -1677,6 +1677,8 @@ namespace Tesses::CrossLang {
auto myvfs = std::dynamic_pointer_cast<TObjectVFS>(vfs);
auto mountable = std::dynamic_pointer_cast<Tesses::Framework::Filesystem::MountableFilesystem>(vfs);
if(myvfs != nullptr)
{
TDictionary* dict2;
@@ -2284,10 +2286,36 @@ namespace Tesses::CrossLang {
}
if(key == "RegisterEverything")
{
if(myEnv->permissions.canRegisterEverything && myEnv->permissions.localfs)
if(rootEnv->permissions.locked)
{
TStd::RegisterStd(gc, rootEnv, std::make_shared<RelativeFilesystem>(myEnv->permissions.localfs->GetVFS(),myEnv->permissions.localfs->GetWorking()));
cse.back()->Push(gc,nullptr);
return false;
}
if(myEnv->permissions.canRegisterEverything)
{
std::shared_ptr<Tesses::Framework::Filesystem::VFS> vfs;
if(GetArgument(args,0, vfs))
{
auto rfs = std::dynamic_pointer_cast<Tesses::Framework::Filesystem::RelativeFilesystem>(vfs);
if(rfs)
{
TStd::RegisterStd(gc,rootEnv, rfs);
cse.back()->Push(gc,nullptr);
return false;
}
}
if(myEnv->permissions.localfs)
TStd::RegisterStd(gc, rootEnv, std::make_shared<Tesses::Framework::Filesystem::RelativeFilesystem>(myEnv->permissions.localfs->GetVFS(),myEnv->permissions.localfs->GetWorking()));
else
TStd::RegisterStd(gc, rootEnv, nullptr);
cse.back()->Push(gc,nullptr);
return false;
}
else
{
@@ -2308,7 +2336,7 @@ namespace Tesses::CrossLang {
{
if(myEnv->permissions.localfs)
{
TStd::RegisterIO(gc, rootEnv, std::make_shared<RelativeFilesystem>(myEnv->permissions.localfs->GetVFS(),myEnv->permissions.localfs->GetWorking()));
TStd::RegisterIO(gc, rootEnv, std::make_shared<Tesses::Framework::Filesystem::RelativeFilesystem>(myEnv->permissions.localfs->GetVFS(),myEnv->permissions.localfs->GetWorking()));
}
else {
TStd::RegisterIO(gc, rootEnv, nullptr);
@@ -2388,6 +2416,8 @@ namespace Tesses::CrossLang {
}
if(key == "RegisterIO")
{
std::shared_ptr<Tesses::Framework::Filesystem::VFS> vfs;
bool r;
if(GetArgument(args,0,r))
{
@@ -2395,13 +2425,21 @@ namespace Tesses::CrossLang {
{
if(myEnv->permissions.localfs)
{
TStd::RegisterIO(gc, rootEnv, std::make_shared<RelativeFilesystem>(myEnv->permissions.localfs->GetVFS(),myEnv->permissions.localfs->GetWorking()));
TStd::RegisterIO(gc, rootEnv, std::make_shared<Tesses::Framework::Filesystem::RelativeFilesystem>(myEnv->permissions.localfs->GetVFS(),myEnv->permissions.localfs->GetWorking()));
}
else {
TStd::RegisterIO(gc, rootEnv, nullptr);
}
}
}
if(GetArgument(args,0,vfs))
{
auto rfs = std::dynamic_pointer_cast<Tesses::Framework::Filesystem::RelativeFilesystem>(vfs);
if(rfs && (myEnv->permissions.canRegisterEverything || myEnv->permissions.canRegisterIO) && !rootEnv->permissions.locked)
{
TStd::RegisterIO(gc, rootEnv, rfs);
}
}
cse.back()->Push(gc,nullptr);
return false;