mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 12:32:20 +02:00
Properply rebuilds hash after a hot compile
This commit is contained in:
parent
11a46fa422
commit
e7540ddef0
3 changed files with 23 additions and 8 deletions
|
@ -62,13 +62,17 @@ namespace IDE.Compiler
|
|||
ProjectSourceCommand command = new ProjectSourceCommand();
|
||||
command.mProjectSource = projectSource;
|
||||
command.mSourceString = new String();
|
||||
command.mSourceHash = sourceHash;
|
||||
|
||||
|
||||
var wantsHash;
|
||||
if (!(sourceHash case .None))
|
||||
wantsHash = false;
|
||||
IDEApp.sApp.FindProjectSourceContent(projectSource, out command.mSourceCharIdData, false, command.mSourceString, wantsHash ? &command.mSourceHash : null);
|
||||
|
||||
if (!(sourceHash case .None))
|
||||
{
|
||||
if (command.mSourceHash != sourceHash)
|
||||
projectSource.mWasBuiltWithOldHash = true;
|
||||
command.mSourceHash = sourceHash;
|
||||
}
|
||||
|
||||
if (gApp.mBfBuildCompiler == this)
|
||||
{
|
||||
if (gApp.mDbgVersionedCompileDir != null)
|
||||
|
|
|
@ -7982,17 +7982,26 @@ namespace IDE
|
|||
}
|
||||
else // Actual build
|
||||
{
|
||||
if ((projectSource.HasChangedSinceLastCompile) || (projectSource.mLoadFailed) || (forceQueue))
|
||||
bool wantsHashRefresh = false;
|
||||
if ((hotProject == null) && (projectSource.mWasBuiltWithOldHash))
|
||||
wantsHashRefresh = true;
|
||||
|
||||
if ((projectSource.HasChangedSinceLastCompile) || (projectSource.mLoadFailed) || (forceQueue) || (wantsHashRefresh))
|
||||
{
|
||||
// mHasChangedSinceLastCompile is safe to set 'false' here since it just determines whether or not
|
||||
// we rebuild the TypeDefs from the sources. It isn't affected by any compilation errors.
|
||||
projectSource.mHasChangedSinceLastCompile = false;
|
||||
projectSource.mWasBuiltWithOldHash = false;
|
||||
|
||||
SourceHash sourceHash = .None;
|
||||
if ((hotProject != null) && (!mWorkspace.mCompileInstanceList.IsEmpty))
|
||||
|
||||
if (hotProject != null)
|
||||
{
|
||||
let compileInstance = mWorkspace.GetProjectSourceCompileInstance(projectSource, 0);
|
||||
sourceHash = compileInstance.mSourceHash;
|
||||
if (!mWorkspace.mCompileInstanceList.IsEmpty)
|
||||
{
|
||||
let compileInstance = mWorkspace.GetProjectSourceCompileInstance(projectSource, 0);
|
||||
sourceHash = compileInstance.mSourceHash;
|
||||
}
|
||||
}
|
||||
|
||||
bfCompiler.QueueProjectSource(projectSource, sourceHash, !bfCompiler.mIsResolveOnly);
|
||||
|
|
|
@ -13,6 +13,7 @@ using IDE.ui;
|
|||
using IDE.Util;
|
||||
using System.Threading;
|
||||
using System.Diagnostics;
|
||||
using IDE.util;
|
||||
|
||||
namespace IDE
|
||||
{
|
||||
|
@ -276,6 +277,7 @@ namespace IDE
|
|||
public FileEditData mEditData;
|
||||
|
||||
public bool mHasChangedSinceLastCompile = true;
|
||||
public bool mWasBuiltWithOldHash;
|
||||
public bool mHasChangedSinceLastSuccessfulCompile = true;
|
||||
public bool mLoadFailed;
|
||||
public bool HasChangedSinceLastCompile
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue