Encrypted Expansion = failure in PresetHandler.cpp at launch
-
@Christoph-Hart I'm doing some debugging in MacOS with expansions. I've created an expansion that contains a json file and an image, then encrypted the file to the intermediate format.
When launching the plugin in DAW, I'm getting an exception at:JUCE Assertion failure in PresetHandler.cpp:2752
which is:
juce::File FileHandlerBase::checkSubDirectory(SubDirectories dir) { File subDirectory = getRootFolder().getChildFile(getIdentifier(dir)); jassert(subDirectory.exists()); <---
Removing the info.hxi file from the plugin Application Support folder (or using file based expansions) allows the plugin to launch without errors.
-
@Christoph-Hart I think this might be a symptom of something else that's going on.
I'm running the debug version of HISE in VS2017. Latest develop branch. Trashed HISE preferences in AppData. When I launch HISE, I get some exceptions.> HISE Debug.exe!juce::File::parseAbsolutePath(const juce::String & p) Line 150 C++
String File::parseAbsolutePath (const String& p) { if (p.isEmpty()) return {}; #if JUCE_WINDOWS // Windows.. auto path = normaliseSeparators (removeEllipsis (p.replaceCharacter ('/', '\\'))); if (path.startsWithChar (getSeparatorChar())) { if (path[1] != getSeparatorChar()) { /* When you supply a raw string to the File object constructor, it must be an absolute path. If you're trying to parse a string that may be either a relative path or an absolute path, you MUST provide a context against which the partial path can be evaluated - you can do this by simply using File::getChildFile() instead of the File constructor. E.g. saying "File::getCurrentWorkingDirectory().getChildFile (myUnknownPath)" would return an absolute path if that's what was supplied, or would evaluate a partial path relative to the CWD. */ jassertfalse; path = File::getCurrentWorkingDirectory().getFullPathName().substring (0, 2) + path; } }
> HISE Debug.exe!hise::FileHandlerBase::checkSubDirectory(hise::FileHandlerBase::SubDirectories dir) Line 2752 C++
juce::File FileHandlerBase::checkSubDirectory(SubDirectories dir) { File subDirectory = getRootFolder().getChildFile(getIdentifier(dir)); jassert(subDirectory.exists());
> HISE Debug.exe!hise::FileHandlerBase::checkSubDirectories() Line 2623 C++
void FileHandlerBase::checkSubDirectories() { subDirectories.clear(); auto subDirList = getSubDirectoryIds(); for (auto dir : subDirList) { File f = checkSubDirectory(dir); jassert(f.exists() && f.isDirectory());
If I hit "Continue" 100 times, HISE eventually loads.
-
-
@dustbro Interesting you bring this up. I've been experiencing an issue with scripts loading in expansions, the scripts are in sub-folders with longish names, once I shortened the name of the subfolders the expansion loads without errors. More investigation this afternoon!
-
After doing some more tests I have found (at least in my case) that it's no the length of the name that's causing the issue, it's the presence of
-
in the name. So I'm guessing this is a regex problem, I'll have to poke around in the source to confirm.Does your problem filename contain
-
? -
@d-healey Very interesting. I'm not using any special characters in the names here. The exceptions posted above were traced back to launching HISE in debug mode (without any projects or expansions loaded).