diff --git a/BeefLibs/corlib/src/Void.bf b/BeefLibs/corlib/src/Void.bf index 4e6289c2..13fb811f 100644 --- a/BeefLibs/corlib/src/Void.bf +++ b/BeefLibs/corlib/src/Void.bf @@ -2,5 +2,9 @@ namespace System { struct Void : void { + public override void ToString(String strBuffer) + { + strBuffer.Append("void"); + } } } diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index bd828344..1912974f 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -6124,6 +6124,8 @@ namespace IDE var args = outFileInfo.Split!('\n'); if (args.Count == 3) { + aliasFilePath = scope:: String(filePath); + filePath.Set(args[0]); loadCmd = scope:: String(args[1]); } diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index 6ae30237..52a23ac8 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -2669,6 +2669,7 @@ namespace IDE.ui if (mTrackedTextElementViewList == null) { String findFileName = mFilePath; + String srcFileName = mAliasFilePath ?? mFilePath; mTrackedTextElementViewList = new List(); if (mFilePath == null) @@ -2686,7 +2687,7 @@ namespace IDE.ui for (var breakpoint in debugManager.mBreakpointList) { - if ((breakpoint.mFileName != null) && (Path.Equals(breakpoint.mFileName, findFileName))) + if ((breakpoint.mFileName != null) && (Path.Equals(breakpoint.mFileName, srcFileName))) { var breakpointView = new TrackedTextElementView(breakpoint); UpdateTrackedElementView(breakpointView); @@ -3681,7 +3682,7 @@ namespace IDE.ui if (gApp.mDebugger.mIsRunning) foundPosition = RemapActiveToCompiledLine(curCompileIdx, ref lineIdx, ref lineCharIdx); bool createNow = foundPosition || !mIsBeefSource; // Only be strict about Beef source - Breakpoint newBreakpoint = debugManager.CreateBreakpoint_Create(mFilePath, lineIdx, lineCharIdx, -1); + Breakpoint newBreakpoint = debugManager.CreateBreakpoint_Create(mAliasFilePath ?? mFilePath, lineIdx, lineCharIdx, -1); newBreakpoint.mThreadId = threadId; debugManager.CreateBreakpoint_Finish(newBreakpoint, createNow); int newDrawLineNum = GetDrawLineNum(newBreakpoint); diff --git a/IDEHelper/DbgSymSrv.cpp b/IDEHelper/DbgSymSrv.cpp index 3341f012..712f6ba4 100644 --- a/IDEHelper/DbgSymSrv.cpp +++ b/IDEHelper/DbgSymSrv.cpp @@ -111,7 +111,7 @@ bool DbgSymRequest::Get(const StringImpl& url, const StringImpl& destPath, NetRe { if (mIsPreCache) { - auto netResult = mDbgSymSrv->mDebugger->mDebugManager->mNetManager->QueueGet(url, destPath); + auto netResult = mDbgSymSrv->mDebugger->mDebugManager->mNetManager->QueueGet(url, destPath, true); if (chainNetResult != NULL) { if ((*chainNetResult != NULL) && (netResult != NULL)) diff --git a/IDEHelper/DebugManager.cpp b/IDEHelper/DebugManager.cpp index a4f31518..583fd67c 100644 --- a/IDEHelper/DebugManager.cpp +++ b/IDEHelper/DebugManager.cpp @@ -1620,7 +1620,7 @@ BF_EXPORT NetResult* HTTP_GetFile(char* url, char* destPath) { AutoCrit autoCrit(gDebugManager->mNetManager->mThreadPool.mCritSect); - auto netResult = gDebugManager->mNetManager->QueueGet(url, destPath); + auto netResult = gDebugManager->mNetManager->QueueGet(url, destPath, false); netResult->mDoneEvent = new SyncEvent(); return netResult; } diff --git a/IDEHelper/NetManager.cpp b/IDEHelper/NetManager.cpp index 230d8a33..45faec59 100644 --- a/IDEHelper/NetManager.cpp +++ b/IDEHelper/NetManager.cpp @@ -447,7 +447,7 @@ NetManager::~NetManager() } } -NetRequest* NetManager::CreateGetRequest(const StringImpl& url, const StringImpl& destPath) +NetRequest* NetManager::CreateGetRequest(const StringImpl& url, const StringImpl& destPath, bool useCache) { AutoCrit autoCrit(mThreadPool.mCritSect); @@ -462,15 +462,18 @@ NetRequest* NetManager::CreateGetRequest(const StringImpl& url, const StringImpl netResult->mFailed = false; netResult->mCurRequest = netRequest; - NetResult** netResultPtr; - if (mCachedResults.TryAdd(url, NULL, &netResultPtr)) + if (useCache) { - *netResultPtr = netResult; - } - else - { - mOldResults.Add(*netResultPtr); - *netResultPtr = netResult; + NetResult** netResultPtr; + if (mCachedResults.TryAdd(url, NULL, &netResultPtr)) + { + *netResultPtr = netResult; + } + else + { + mOldResults.Add(*netResultPtr); + *netResultPtr = netResult; + } } netRequest->mResult = netResult; @@ -478,11 +481,11 @@ NetRequest* NetManager::CreateGetRequest(const StringImpl& url, const StringImpl return netRequest; } -NetResult* NetManager::QueueGet(const StringImpl& url, const StringImpl& destPath) +NetResult* NetManager::QueueGet(const StringImpl& url, const StringImpl& destPath, bool useCache) { - BfLogDbg("NetManager queueing %s\n", url.c_str()); + BfLogDbg("NetManager queueing %s %d\n", url.c_str(), useCache); - auto netRequest = CreateGetRequest(url, destPath); + auto netRequest = CreateGetRequest(url, destPath, useCache); auto netResult = netRequest->mResult; mThreadPool.AddJob(netRequest); return netResult; @@ -524,7 +527,7 @@ bool NetManager::Get(const StringImpl& url, const StringImpl& destPath) } else { - netRequest = CreateGetRequest(url, destPath); + netRequest = CreateGetRequest(url, destPath, true); break; } } diff --git a/IDEHelper/NetManager.h b/IDEHelper/NetManager.h index f21d7e65..c52b0904 100644 --- a/IDEHelper/NetManager.h +++ b/IDEHelper/NetManager.h @@ -109,8 +109,8 @@ public: NetManager(); ~NetManager(); - NetRequest* CreateGetRequest(const StringImpl& url, const StringImpl& destPath); - NetResult* QueueGet(const StringImpl& url, const StringImpl& destPath); + NetRequest* CreateGetRequest(const StringImpl& url, const StringImpl& destPath, bool useCache); + NetResult* QueueGet(const StringImpl& url, const StringImpl& destPath, bool useCache); bool Get(const StringImpl& url, const StringImpl& destPath); void CancelAll();