mirror of
https://onedev.site.tesses.net/crosslang
synced 2026-04-18 12:07:02 +00:00
Fix a bug where a crvm dependency is freed if it only has classes
This commit is contained in:
@@ -48,7 +48,7 @@ jobs:
|
|||||||
image: git.tesseslanguage.com/tesses50/arch-builds:2025-11-11
|
image: git.tesseslanguage.com/tesses50/arch-builds:2025-11-11
|
||||||
interpreter: !DefaultInterpreter
|
interpreter: !DefaultInterpreter
|
||||||
commands: |
|
commands: |
|
||||||
wget -O /root/repository.key wget https://git.tesseslanguage.com/api/packages/tesses50/arch/repository.key
|
wget -O /root/repository.key https://git.tesseslanguage.com/api/packages/tesses50/arch/repository.key
|
||||||
pacman-key --add /root/repository.key
|
pacman-key --add /root/repository.key
|
||||||
pacman-key --config /opt/cross/ppc/pacman.conf --add /root/repository.key
|
pacman-key --config /opt/cross/ppc/pacman.conf --add /root/repository.key
|
||||||
printf "[tesses50.git.tesseslanguage.com]\nSigLevel = Optional TrustAll\nServer = https://git.tesseslanguage.com/api/packages/tesses50/arch/core/\$arch\n" >> /etc/pacman.conf
|
printf "[tesses50.git.tesseslanguage.com]\nSigLevel = Optional TrustAll\nServer = https://git.tesseslanguage.com/api/packages/tesses50/arch/core/\$arch\n" >> /etc/pacman.conf
|
||||||
|
|||||||
@@ -1230,6 +1230,10 @@ namespace Tesses::CrossLang
|
|||||||
}
|
}
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
static TObject New_Task(GCList& ls, std::vector<TObject> args)
|
||||||
|
{
|
||||||
|
return TTask::Create(ls);
|
||||||
|
}
|
||||||
void TStd::RegisterRoot(GC* gc, TRootEnvironment* env)
|
void TStd::RegisterRoot(GC* gc, TRootEnvironment* env)
|
||||||
{
|
{
|
||||||
GCList ls(gc);
|
GCList ls(gc);
|
||||||
@@ -1370,6 +1374,7 @@ namespace Tesses::CrossLang
|
|||||||
});
|
});
|
||||||
newTypes->DeclareFunction(gc,"DocumentationParser","Parse documentation blocks",{"documentationString"},New_DocumentationParser);
|
newTypes->DeclareFunction(gc,"DocumentationParser","Parse documentation blocks",{"documentationString"},New_DocumentationParser);
|
||||||
newTypes->DeclareFunction(gc,"ByteArray","Create bytearray, with optional either size (to size it) or string argument (to fill byte array)",{"$data"},ByteArray);
|
newTypes->DeclareFunction(gc,"ByteArray","Create bytearray, with optional either size (to size it) or string argument (to fill byte array)",{"$data"},ByteArray);
|
||||||
|
newTypes->DeclareFunction(gc,"Task","Create a task for async, to manually create an async object",{},New_Task);
|
||||||
|
|
||||||
env->DeclareVariable("Version", TDictionary::Create(ls,{
|
env->DeclareVariable("Version", TDictionary::Create(ls,{
|
||||||
TDItem("Parse",TExternalMethod::Create(ls,"Parse version from string",{"versionStr"},[](GCList& ls, std::vector<TObject> args)->TObject{
|
TDItem("Parse",TExternalMethod::Create(ls,"Parse version from string",{"versionStr"},[](GCList& ls, std::vector<TObject> args)->TObject{
|
||||||
|
|||||||
@@ -314,6 +314,7 @@ namespace Tesses::CrossLang {
|
|||||||
if(this->permissions.customConsole != nullptr) this->permissions.customConsole->Mark();
|
if(this->permissions.customConsole != nullptr) this->permissions.customConsole->Mark();
|
||||||
for(auto defer : this->defers) defer->Mark();
|
for(auto defer : this->defers) defer->Mark();
|
||||||
if(this->error != nullptr) this->error->Mark();
|
if(this->error != nullptr) this->error->Mark();
|
||||||
|
for(auto cls : this->classes) cls.first->Mark();
|
||||||
}
|
}
|
||||||
TRootEnvironment* TRootEnvironment::Create(GCList* gc,TDictionary* dict)
|
TRootEnvironment* TRootEnvironment::Create(GCList* gc,TDictionary* dict)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3996,6 +3996,28 @@ namespace Tesses::CrossLang {
|
|||||||
|
|
||||||
if(ttask != nullptr)
|
if(ttask != nullptr)
|
||||||
{
|
{
|
||||||
|
if(key == "SetSucceeded")
|
||||||
|
{
|
||||||
|
if(args.size() > 0)
|
||||||
|
{
|
||||||
|
ttask->SetSucceeded(args[0]);
|
||||||
|
}
|
||||||
|
cse.back()->Push(gc, Undefined());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(key == "SetFailed")
|
||||||
|
{
|
||||||
|
if(args.size() > 0)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
throw VMByteCodeException(gc,args[0]);
|
||||||
|
} catch(...) {
|
||||||
|
ttask->SetFailed(std::current_exception());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cse.back()->Push(gc, Undefined());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if(key == "ContinueWith")
|
if(key == "ContinueWith")
|
||||||
{
|
{
|
||||||
TCallable* callable2;
|
TCallable* callable2;
|
||||||
|
|||||||
Reference in New Issue
Block a user