From b4c27e33fb5a4f0f084457628e1767e6fcca6307 Mon Sep 17 00:00:00 2001 From: Mike Nolan Date: Wed, 16 Apr 2025 07:56:57 -0500 Subject: [PATCH] Fix win32 somewhat? --- src/archive.cpp | 5 +--- src/runtime_methods/net.cpp | 1 - src/runtime_methods/time.cpp | 9 +++++++ src/vm/gc.cpp | 11 +++++++-- src/vm/vm.cpp | 47 ++++++++++-------------------------- 5 files changed, 32 insertions(+), 41 deletions(-) diff --git a/src/archive.cpp b/src/archive.cpp index 48433d2..0fc79a2 100644 --- a/src/archive.cpp +++ b/src/archive.cpp @@ -245,11 +245,8 @@ namespace Tesses::CrossLang size_t offset = 0; uint8_t buff[1024]; do { - #if defined(_WIN32) - read = min(min(tableLen-offset,tableLen), sizeof(buff)); - #else + read = std::min(std::min(tableLen-offset,tableLen), sizeof(buff)); - #endif read = strm->Read(buff,read); if(read > 0) strm2->WriteBlock(buff,read); diff --git a/src/runtime_methods/net.cpp b/src/runtime_methods/net.cpp index 8b38812..eeba79b 100644 --- a/src/runtime_methods/net.cpp +++ b/src/runtime_methods/net.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include using namespace Tesses::Framework::Streams; using namespace Tesses::Framework::Http; diff --git a/src/runtime_methods/time.cpp b/src/runtime_methods/time.cpp index 1345122..fc16cda 100644 --- a/src/runtime_methods/time.cpp +++ b/src/runtime_methods/time.cpp @@ -1,6 +1,11 @@ #include "CrossLang.hpp" +#if defined(_WIN32) +#include +#include +#else #include +#endif #include "../HowardHinnant_date/date.h" @@ -83,7 +88,11 @@ namespace Tesses::CrossLang int64_t msec; if(GetArgument(args,0,msec)) { + #if defined(_WIN32) + Sleep((int)msec); + #else usleep(1000*msec); + #endif } return nullptr; } diff --git a/src/vm/gc.cpp b/src/vm/gc.cpp index 9a1148f..3585c59 100644 --- a/src/vm/gc.cpp +++ b/src/vm/gc.cpp @@ -1,8 +1,12 @@ #include "CrossLang.hpp" #include #include -#include #include +#if defined(_WIN32) +#include +#else +#include +#endif #if defined(CROSSLANG_ENABLE_SQLITE) extern "C" { @@ -118,8 +122,11 @@ namespace Tesses::CrossLang } - + #if defined(_WIN32) + Sleep(100); + #else usleep(100000); + #endif } GC::Collect(); }); diff --git a/src/vm/vm.cpp b/src/vm/vm.cpp index c8c8dcc..b4e690c 100644 --- a/src/vm/vm.cpp +++ b/src/vm/vm.cpp @@ -3005,12 +3005,9 @@ namespace Tesses::CrossLang { size_t len = (size_t)length; if(off < len) - #if defined(_WIN32) - len = netStrm->WriteTo(data->data.data()+off,min(len, min(data->data.size() - off, data->data.size())), ip, (int64_t)port); - - #else + len = netStrm->WriteTo(data->data.data()+off,std::min(len, std::min(data->data.size() - off, data->data.size())), ip, (int64_t)port); - #endif + else len = 0; @@ -3059,12 +3056,9 @@ namespace Tesses::CrossLang { size_t len = (size_t)length; if(off < len) - #if defined(_WIN32) - - len = strm->stream->Write(data->data.data()+off,min(len, min(data->data.size() - off, data->data.size()))); - #else + len = strm->stream->Write(data->data.data()+off,std::min(len, std::min(data->data.size() - off, data->data.size()))); - #endif + else len = 0; @@ -3085,12 +3079,9 @@ namespace Tesses::CrossLang { size_t len = (size_t)length; if(off < len) - #if defined(_WIN32) - len = strm->stream->ReadBlock(data->data.data()+off,min(len, min(data->data.size() - off, data->data.size()))); - #else len = strm->stream->ReadBlock(data->data.data()+off,std::min(len, std::min(data->data.size() - off, data->data.size()))); - #endif + else len = 0; @@ -3292,11 +3283,9 @@ namespace Tesses::CrossLang { { offdest = bArray2->data.size(); } - #if defined(_WIN32) - len = min(min(bArray->data.size()-offsrc,bArray2->data.size()-offdest),len); - #else + len = std::min(std::min(bArray->data.size()-offsrc,bArray2->data.size()-offdest),len); - #endif + if(len > 0) memcpy(bArray2->data.data()+offdest,bArray->data.data()+offsrc,len); cse.back()->Push(gc,bArray2); @@ -3342,11 +3331,9 @@ namespace Tesses::CrossLang { { offdest = bArray->data.size(); } - #if defined(_WIN32) - len = min(len,bArray2->data.size()-offsrc); - #else + len = std::min(len,bArray2->data.size()-offsrc); - #endif + bArray->data.insert(bArray->data.begin()+offdest,bArray2->data.begin()+offsrc,bArray2->data.begin()+offsrc+len); cse.back()->Push(gc, bArray); @@ -3380,11 +3367,8 @@ namespace Tesses::CrossLang { { off = bArray->data.size(); } - #if defined(_WIN32) - len = min(bArray->data.size() - off,len); - #else + len = std::min(bArray->data.size() - off,len); - #endif bArray->data.insert(bArray->data.end(),bArray2->data.begin()+off,bArray2->data.begin()+off+len); cse.back()->Push(gc,bArray); return false; @@ -5116,18 +5100,13 @@ namespace Tesses::CrossLang { { if(closure->closure->args[i].find("$$") == 0) { - #if defined(_WIN32) - return min(argLen,i); - #else + return std::min(argLen,i); - #endif + } } - #if defined(_WIN32) - return min(argLen,closure->closure->args.size()); - #else + return std::min(argLen,closure->closure->args.size()); - #endif }; auto trimStart = [](std::string txt)->std::string { if(txt.empty()) return {};