diff options
Diffstat (limited to 'lib/compilers/pascal.js')
-rw-r--r-- | lib/compilers/pascal.js | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/compilers/pascal.js b/lib/compilers/pascal.js index 499be4cb5..862825378 100644 --- a/lib/compilers/pascal.js +++ b/lib/compilers/pascal.js @@ -218,10 +218,15 @@ function compileFPC(info, env) { compiler.supportsOptOutput = false; var originalExecBinary = compiler.execBinary; + var currentlyActiveFilters = {}; compiler.postProcessAsm = function (result) { if (!result.okToCache) return result; + if (currentlyActiveFilters.binary) { + preProcessAsm(result.asm); + } + demangler.buildOrderedCache(); for (var j = 0; j < result.asm.length; ++j) @@ -237,6 +242,7 @@ function compileFPC(info, env) { options = options.concat(this.compiler.intelAsm.split(" ")); } + currentlyActiveFilters = filters; filters.preProcessLines = preProcessLines; return options; @@ -309,6 +315,10 @@ function compileFPC(info, env) { return asmLines; }; + var preProcessAsm = function(asm) { + for (var j = 0; j < asm.length; ++j) demangler.addDemangleToCache(asm[j].text); + }; + compiler.objdump = function (outputFilename, result, maxSize, intelAsm, demangle) { outputFilename = path.join(path.dirname(outputFilename), "prog"); |