HISE Logo Forum
    • Categories
    • Register
    • Login

    External display buffers visualization crash

    Scheduled Pinned Locked Moved Bug Reports
    bugdisplay buffercrash
    18 Posts 2 Posters 876 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Matt_SFM
      Matt_SF
      last edited by Matt_SF

      Hi guys, I'm facing an issue when trying to display a buffer into a panel, using a timer.
      I've created an issue on github but I'm wondering if someone has a clue on how to solve it.

      When debugging, the returned error is here :

      hise::HiseJavascriptEngine::RootObject::ConstReference::isConstant() const at /Users/mathieurahm/GitHub/HISE/hi_scripting/scripting/engine/JavascriptEngineExpressions.cpp:88
      
      bool isConstant() const override
      {
          jassert(ns != nullptr); // << ERROR
          auto v = ns->constObjects.getValueAt(index);
      
          // objects and arrays are not constant...
          return !v.isArray() && !v.isObject();
      }
      

      I can understand what that means but I've no idea about a solution.

      Steps to reproduce :

      You can load the snippet 'Scriptnode Visualization 101' from the snippets repo : It loads fine.

      HiseSnippet 3018.3oc2ZzzaabbcojV4p0NAIEAA83.0BTp.ZZtLwoAIvvVeQagJISXJYmhf.gg6Njbh1cmMyLqjXBx0h9yn8ZO1C8OPO1KEn+C58B3K8b56Mytb2UhxVVwwnoDvlbm4Muu+bV0WJBXJkP5zXkCllxbZbK2ASSzS1bBkm3ryVNMda28nJMSRrKswzTpRwBcZzXwGhKzXkkbLed982fFQSBXkK437TAOfsKOlqKWs+C9s7nndzP1A73JP+QOXm.QxlhHQFvOK51wIkFbLcLaeJB1BtNMVd6PtVHGnoZlxowRaHBmNXh3zDK7Okq3CiX3C9NC.DYWtmHJD4XbUmMmviB6WH2JGmFt8K0BKZ0Bum6d7P9r0K0FuiYCR4IppOZrPc1awZrmeU1qSE1aNrTiJrzRVV5ccGDH4o5xcP94lt6j.FmQTPsWkUrv5rve6Vt24C9.h8wDQHi.LQFMhqnZtHg32w2yyamQjohLRBiERnjQYQQjtaQRiDZhXDQOgQT7wIznVjLEi73T6QaO6fhjnoEmVjvtcHXWST.PzHxIznLFfCpln.UgxftfLojkny2zq4HgjnzYiFQh3GyHwhvaK4IiUDpTjkfn83DwPB.0SOjDy.IVsVKxNjSEYQgDU13wLktfw51l34c.xzkRcBSepPdLYBSxHbE4qx.3oHgHAnwkbJWOAVPEINkrauGaYX.vQfP4wSzBXyTF8XhAcTCOMNRLjFcT.ELpl0a68A2wyaSAXRRzsioGy5IgGlYhZ1samVj61YsOyy6N2Ylh7SIGBpU1Y.TnFKjqRinSICA8AHnHj2605GCweHSasrFkDo2miJiLPPnVSTctfnffx.lGDfpPyljDlRtGwjqn8XldKKzaX.dfA1lqNn.09qlKwEDcDWBn4RjXRSvd.nfDPULC3kJdiY4TfqADgHDrKCsvrcAxxYEhkWH+R+0pv0xg.WGldAVtowlTB2FG1q21O4nc2d+Gdvifi3+we3m7QVY.7r.1hJyYMoHkI0blxxaX3P.MgLleREd23xhGd+rXHYRRBKRQhQePf68aABd4IQQilHfyJKTHQrjwf6IFkTwzTgcqvE2i7sdDxpVwZWyAW8SqKOsP.pvIv99deWgzAN8mB4mIhSXRIOzJEgrQzrHcUBkmYv32S9c4LeVtESAorQzkhYqByPkk.h5UZQL+arfzq2A0zdBAooI5+Y7jPHJTCo8ZQX5f0Z6IG1FTKOARIXkq9yNWyRTj6isOb1Hl9WCIOBwnTEONEbqSofnZTg4pO.YURsUQY12GThEAw.N5imr4p88WsEABeKhdeFylxCDLfA3hPd.MBxC90YL4TClwTXElPT7kLntfgiPJBbjdBhHk.8nKzbF9DXdMjCUpxs4bUau99nN.KYJ2DHzPn1XyQYIAXNjlq48sdqXcNIzLsHPfBMPsQTN3poDwLH4qMKmJKMMxH9nKGRSv8bhHT0xfhp9hQBwwDHZDAZ896P1PBYvAoAxIC+uM9tzpjyAfCjEg4RrBScBxJQL7qXAZTUDykxbmYS7QtIos2JFYMjposyUb2ChYaaQTe.IMM..gu6J.08FX0AED71h.jFhIodqT7g7EfwpteOZ97a24KMP+EmcjRSk5VjyNhkD1hL8nXdh4K5YeYE7zocGDdCv4UrZhbNOgq4ypvAw9oBE2jQuyZUNN3tXkJIKEpznaBK7cnODZPQbZLoM+vNEqwz8Q3dhHSySXk13wFi731ifny0ihZ14rtc6Y9fjXLdPaySMseoZe5DtlY2DOTo9qhBtEY9ZzBtrRgpt1BU1xdDSYueDpNkWeZyhnEIC3RFzWI53f58b5KM5mwjXZBzinrZR9XvqY6jwf1CkqGZf2pNGumE5l4AwuTpXKtCwmmRSLttmX6e5apVKLN.cSiQhsIBeyUgZoGADLMSWT5acLYTdZcSLd6J4ZMsiTTEjRB3x.jpXzJxKznzIzb+LSUZfmCQjNzlnwxjV5c9bw.IfJ5FGMTakJ.WKSVkYcR0B6qZ2s2BAFTZLU61sqlNr67SG1ERG56WIgHl3kCmhQCKJNXRhUM6FUMMIXBzTjHSQNbGRPdlLrRvIPwlvZhTau3.HrYLGG.4hI8LJjhLeOSB95liZ0Sld1Lkt.e8hTOXea4ggkIa8VoeWaDg8j2yhgOyrd0f1Vj0Q1eeglOBR1i7fIls6q0XVvnuNZuqGEmGlVxlX.JJ2OgdZnX73hpYXNPaSzTTmhlxbxucTDOUwZ9EcuqIQ3cM+6KW6yVwFnWvyPG7fDxdbdQEuuyib9sFMZt6gNIRQTDFdMmss44dAGrYRV7PLiTogEADFAp9bUtW9bUUG6Kv5yVAPQxNPN6GmxRtrgAcxczgec3NaAJabXr70Ja5.VaK1Ivjs1QyVwcKl5XsHEFRcSnvKLBDfgFKoM69VECtg9ZNbX7rkb666bFHGMvwdmV7Cmq3Y6ZOaRsydwAFgQUsoJpO+JNzd9Ffxu1Pi3bJvXa5oUGp+01PsWUV7cc6y0ASlOOtvb3QvD8iAOleU.uk61PYx.cICtjauO+Mvb+tV56k6B.zDI9sbKmppFS.8yWahFLNoA5ajeU.M9CtkgboXZMI6.Qe.9lPy5PyhOghYYFFIBNd.Td6hwooVdaCDhlA4yNbcBmW9Jqt7ewVqY0z0RNFS.5.6rmES1f5fEvHK6ycJBWF.M7Yd36gO4a5OSgAa5WrYkDB6auCAicJ+2NMtg0nXmh9nQm46.o4Emhgx7b2Wv3XVquHZZ5DQBO.WxBQAmtdLz2ktfceDUc.z2N5uOHSAoqBebx..Xykq0XwmBVWChugKzaZaPPVXeXJLPw1iF.J1oXidXfDlAD7ZYx1Ay7dqwq0bf.TTb4aVsDvhwlrQK3N6Nz.u8EqjHz5xhOAAjKXw+Npmh6Bk1cdJZ4QwvAwtUyY4TDTOWnYFKmUiweuJL9LHthr5u20zUE10CILKNd5rq9AZGXLCPIMuMghNoPeV6DYsIOxz6xI140LSFg2MDu39alMAtYElxzQ0PtNeXXfnpDdZJS+ZScsTE00sbEp.nPNltz4BVZIqcks+gaXMUihXmUTD7bIWN+Jn3.CEdVQby1PneHfXywKhk5SkTaOmv4Wd1Svu2imjK7kY02id14V6cdv.MKEyNUsB0fiYmZUGUWE0XKi0WXNW.yNu5j9WMGRCoJtTReS2dR1WmAgrSKoOFa+G4+m6+Rn+yu+EoemWQQ+VF5CcGB92NW.+WCE.PrWQc+CgHsezH8KR2eC29SnpJz9u+m19u9O+2+q2DzdYSCVyQrqDHuhKjuoKj9odT7a6FCe2tXuqXHru6AYxDxs8gV88IzrPtn3Blry.0wrAdS2ghXSt1xH9EpEwWK7rwaB6jEAWL9rhxZYW7FhpqotoMemYiqnZZrstP4MICOTLYI9dKTW5EHaudNyc5JoCqcUAijh3pWh9g6TU4tTMkaY+rGPkiYZU9jEIr.aWBlZ36Dh9AUewBkVEbuBU1OfrynZ4klctpE3b7SMKw66leMLsqAykYTVY4+7e4QeeMCyssFl76YAuLDZDnxkr.VwUni9t1K23UotZEcatC1sbKuVl4ZPt7Hfa7FMB342e8LMDrpsy7T2xT6gMDhiiollRuVCrVcfm21t4McG.cdYdyNlFFeeyyjmQAqwCsMPIj9ufWD7+3p9hfSuxuH3GGnAxefjlnREp5JWVL+.XpYU0EOTwvxe1peUVeSAUN2sd986AB4bOy.pNSZ7SJZRuxfmK9hdgz9WyWH8R+O2Kj9m.WuPsYmWofGGXd4OambBKBhEL73OGb9MuLqhUq6KumHQTLkVog9ILXDywiY0ifmm.stVSCNtbk26AOgEwnpZ8RtK3rQkllSud5B+W4+9Alq85W3ZYWBF.R9o60Bs3+WesPuQtmi2DzHlFHEGEXudHzO8mYVAj6DyehOq3tG9Lw24jyWqMFxxcTPPcTcgC185dvO75dvO55dv6dcO3GecO3u45dvO4kePrHTdOKXnIzaT+ssMW1X6Dr0NSDgy+UeWzfl
      

      Then hit "Compile" : it crashes HISE.

      Cheers!

      Develop branch
      Win10 & VS17 / Ventura & Xcode 14. 3

      ustkU 1 Reply Last reply Reply Quote 0
      • ustkU
        ustk @Matt_SF
        last edited by ustk

        @Matt_SF This is probably because the data objet of P1 (buffer) and P2 (value) are not defined before the first timer call.
        Panels are always painting a first time at compile, when these objects don't yet exit
        THEN, the timer runs a first time creating those objects.

        Two solutions :

        • Declare the object after the panels are referenced
        const var P1 = Content.addPanel("P1", 0, 0);
        P1.data.buffer = Content.createPath();
        
        const var P2 = Content.addPanel("P2", 110, 0);
        P2.data.value = 0;
        
        • Or check if the data objects are defined for the paintRoutine before using them
        // in P2 paint routine
        if (isDefined(this.data.buffer))
            g.fillPath(this.data.buffer, this.getLocalBounds(0));
        
        // in P2 paint routine
        if (isDefined(this.data.value))
            g.setColour(Colours.withAlpha(Colours.white, this.data.value));
        

        Can't help pressing F5 in the forum...

        Matt_SFM 1 Reply Last reply Reply Quote 0
        • Matt_SFM
          Matt_SF @ustk
          last edited by Matt_SF

          @ustk Thanks for your answer Greg! Unfortunately it still returns the same error... 🤔

          Edit : If I 'Continue' debugging in VS, I end up here:

              inline int size() const noexcept
              {
                  return numUsed;
              }
          
          HISE Debug.exe!juce::ArrayBase<juce::NamedValueSet::NamedValue,juce::DummyCriticalSection>::size() Ligne 201 HISE\JUCE\modules\juce_core\containers\juce_ArrayBase.h(201)
          

          Develop branch
          Win10 & VS17 / Ventura & Xcode 14. 3

          ustkU 1 Reply Last reply Reply Quote 0
          • ustkU
            ustk @Matt_SF
            last edited by

            @Matt_SF Well it's not crashing here.
            Last develop commit? Mine's dating from 5 days ago... 9580e1bc3ddd30f85e6dc77d5593e41ebee9d359

            Can't help pressing F5 in the forum...

            Matt_SFM 1 Reply Last reply Reply Quote 0
            • Matt_SFM
              Matt_SF @ustk
              last edited by Matt_SF

              @ustk that's odd. I was on the commit from July 10th and I just build the latest commit today...
              I'll clean everything manually and rebuild it again

              Edit: @d-healey No David, I have only one HISE source folder on my computer 😂

              Develop branch
              Win10 & VS17 / Ventura & Xcode 14. 3

              1 Reply Last reply Reply Quote 0
              • Matt_SFM
                Matt_SF
                last edited by

                Nope, still no luck. I even checked the JUCE folder in the projucer...

                The weird thing is that it works when I load the project but crashes as soon as I hit 'Compile' again...

                (And now, the snippet browser is also crashing with the latest commit :face_with_tears_of_joy:
                Something related to the new CSS additions)

                Develop branch
                Win10 & VS17 / Ventura & Xcode 14. 3

                1 Reply Last reply Reply Quote 0
                • Matt_SFM
                  Matt_SF
                  last edited by

                  OK I built the latest Master branch but it still crashes...
                  @Christoph-Hart Maybe you'l have an idea about this

                  Oddly it used to work before...

                  Develop branch
                  Win10 & VS17 / Ventura & Xcode 14. 3

                  ustkU 1 Reply Last reply Reply Quote 0
                  • ustkU
                    ustk @Matt_SF
                    last edited by

                    @Matt_SF Have you tried the commit I pointed?
                    Do you delete the binary folder before building?

                    Can't help pressing F5 in the forum...

                    Matt_SFM 1 Reply Last reply Reply Quote 0
                    • Matt_SFM
                      Matt_SF @ustk
                      last edited by

                      @ustk Yes and yes, but it still crashes... It must be something on my machine then but I don't know what could cause this. I haven't made any modifications in the source code...
                      I'll try to dig in...

                      Develop branch
                      Win10 & VS17 / Ventura & Xcode 14. 3

                      1 Reply Last reply Reply Quote 0
                      • Matt_SFM
                        Matt_SF
                        last edited by

                        I even deleted my HISE folder and re-cloned it from Christoph's repo but it's still not working...
                        Oddly, if I increase the timer, it doesn't crash (above 300ms)... 🤔

                        Develop branch
                        Win10 & VS17 / Ventura & Xcode 14. 3

                        ustkU 1 Reply Last reply Reply Quote 0
                        • ustkU
                          ustk @Matt_SF
                          last edited by ustk

                          @Matt_SF Strange indeed... Have you tried a new minimal project from scratch? Maybe this one is corrupted somehow... Though I wouldn't understand why it doesn't crash above 300ms...
                          No error code in the console?
                          If you run a debug in your IDE, what does the crash report say?

                          Can't help pressing F5 in the forum...

                          Matt_SFM 1 Reply Last reply Reply Quote 0
                          • Matt_SFM
                            Matt_SF @ustk
                            last edited by

                            @ustk I recreated a minial project but the crash still happens.
                            I'm also puzzled by the timer thing...

                            What the IDE outputs :
                            1 - actually I made a mistake in my OP, there's a debug breakpoint in

                            HISE Debug.exe!hise::HiseJavascriptEngine::RootObject::ConstReference::isConstant() Ligne 88
                            HISE\hi_scripting\scripting\engine\JavascriptEngineExpressions.cpp(88)
                            
                            bool isConstant() const override
                            {
                                jassert(ns != nullptr); 
                                auto v = ns->constObjects.getValueAt(index); // << BREAKPOINT
                            
                                // objects and arrays are not constant...
                                return !v.isArray() && !v.isObject();
                            }
                            

                            2 - 'Read access violation' in

                            HISE Debug.exe!juce::ArrayBase<juce::NamedValueSet::NamedValue,juce::DummyCriticalSection>::size() Ligne 201
                            HISE\JUCE\modules\juce_core\containers\juce_ArrayBase.h(201)
                            
                            inline int size() const noexcept
                             {
                                    return numUsed;
                            }
                            

                            Develop branch
                            Win10 & VS17 / Ventura & Xcode 14. 3

                            ustkU 1 Reply Last reply Reply Quote 0
                            • ustkU
                              ustk @Matt_SF
                              last edited by ustk

                              @Matt_SF Strangely when opening your snippet, the global cable not is not there (probably something wrong in the xml)
                              Have you tried a very minimal snippet without a global cable?

                              Screenshot 2024-07-25 at 14.53.46.png

                              Can't help pressing F5 in the forum...

                              Matt_SFM 1 Reply Last reply Reply Quote 0
                              • Matt_SFM
                                Matt_SF @ustk
                                last edited by

                                @ustk yes it isn't displayed in the snippet example (coming from the examples repo), but the cable method works fine.
                                I tried indeed without the cable.

                                I'm actually working on a drums plugin, that's why it's more convenient to use the buffer solution because I can dynamically change the buffer source, which is not possible to do when using global cables.

                                Develop branch
                                Win10 & VS17 / Ventura & Xcode 14. 3

                                ustkU 1 Reply Last reply Reply Quote 0
                                • ustkU
                                  ustk @Matt_SF
                                  last edited by

                                  @Matt_SF please try this snippet, I'd like to check if your huge buffer length can be problematic in the present case.

                                  HiseSnippet 1571.3ocuX8taaaCDmJILs1McXEqO.B4SJ.dtVNooIaXXt4OtyXMoFwoACqnHiQh1lvRjZRzM1anC6i6wZOR6MX6HojkTRbah2V8GRL4c7te2w69cLoarviljHhQVUNcZDEYsFt2Ttb39CILNpyAHqUwRZhDs2zHRRB0GYYs7KTxrprBR+4u918HADtGMeKD5LAyi9RVHSlua2VeOKHnMwmdJKrf1a0pimfuuHPLFvwx3FnHh2Hx.5wDkZKgAPbnOSJh6II.XPVqrmveZughK4F8OikvtHfpV3h5AFxrcaQfuBwpcQ6OjE32MKdSPfU5lG8Kah9GiOh4ylsedV3y0BryOQw7g0Rkg2xkfmaQ30n.7tAHYU.RqXfziv87hYQxbIJ77.bGtjF2m.o8hPwnKZoeaY79BPCtrdHYDscLrX1Ib1tQiZ1vO13qqVER8IR62Qhs8YIQAjo6MteeZbO3xviZ+M15xg5CnxCttXm0M9yt8O3tNXrB15hFvYuAKdMK4bETr2qa29vSNuWme7PvBtM2AjBVqdBUdBiOvbHHYDQikLZhS0esZk0M69RJefb35eUQaTCjd73P3ljyoAIfP2puW4wh9rKAj4BtKKmAfbeQXjfCKbV2HVEfUMeUAltPog7DwXIiSc5Ol6IYBtyfMT3YfRASAsi4WI0IbI6mGSubHSRAKUoZEVeaGVxAz9fE7cjCYI08IRR8K1XipU.a3GStrKQNrnnZ15E.9doviDrmXL2OARg0rcqqRjogVNLUsZw6SBBt.5oxwoFlErq5xBRxdwTnDN2o2fedxSrIfV.BMereCTKULga2PCl2pU8MSNOQRhk0rmbNk6Wyd54gLt9WjIuM2H1MzvuRJnhoQpzqSVDkEOJSoiHmMUpmEN1B9wBI8UowU02W09ph52+FkotviEAAfEuIwFe8ANnCeb3Ez3ZPYTvX5LEgt2xTB34SITjwxyT+UPQAuCmIeUDkOOdLTZQK7sW24.31TwijtWdeBr2Az2AjxFVkJ3CnIijhHstoU5.OqTK8gYbNpzNhALK2GatBPSlwa+6uo0zYK9yKZcIyWNb1F1wsFRYCFly+25mZgtN8FPrJ7GGPjkYaUiXRE.46RTbJZLdBSNs3Hn+ynfusP7Q3tLo2vaFiKcCXDtU9+.ioCtdH9PfAzSlCvUvs+gOASovF+WMshA7ox4qgyGLTBD.UbI1eUqgkEDRoCtr9CbdWVjhFHldpnKnuSBILJfdB.9Z1WDH7F0i8Kzq2ZFYv1dJMb7Ro8WjN3Uu0oK2O7skYHwfiHxXFz9fgbfYVX1PIUNXIUirYcC0ZUASOfwTu3ugOoBcmkv.gtYBKvAbLUdoHdj9dJ86Hq6YtTRzI4y6OAfOj6UUsV2CCTu0afddPf3REU.KsdFtsz60UDLMZnfy7TaYzHC5OODFLHyv+2QRNkvBTM.8Fm.TV9uh2CTV+1Pn.z5XgO7MbahGjXmpFynZjTjdPUKMtt2rp2RXMu.RkgUFI6whl7DfoPM8k5ohKqjahdi2TlqJNT3ardIm+3BNelFKl6Vtf6VCKR7f25pnLPWKZio0KH9t4MU5OfNIil+J8RWcGXcGtOchhM3KgYGcIwvSpkFUWc1JvUGw3mop+guppGPGQlLa8Vv5dRZjpeSsFFtm9WFbjJjKcNTAitZtQ+BbSPp9Syc2oQyMa1rfKp.RgOkbyiAy4ZNQC2s1sgq61Pa1H5klzoQglM2c2Fa8zsa1bys14Y67zzmF2NlBuzh6MMCa5AmyKbcKEtqhc2dNw6ZZCaehp8.U53naapzctoxW.rLy2nq7wLpxH2C2cHI4Cbgbqrxp5YuWEJ4ui.gJTnWAmvFzD5bJWk+Y3P320yjcmJwWpTQp0cOIX15JIg4f+UwQTxnxf+AlVTsf6DxWYQaN0yMJF1kwa9aLNkDCuHWqv7zVObVsBd5wRlp1NImojBOiOKq.r0+qMvh7VyOIiBCIdwhy8LS2UAz806.oYt9+mPE7Qp01tn2kR+L6EZgvei+4ddkM00NXyE8fatnGbqE8fOcQO31K5Ae1hdvc93GT8uf44ikhPyCTfNitGpKBsrNjSfGioehI5e.jgizrK
                                  

                                  Can't help pressing F5 in the forum...

                                  Matt_SFM 1 Reply Last reply Reply Quote 0
                                  • Matt_SFM
                                    Matt_SF @ustk
                                    last edited by

                                    @ustk Thanks. Same thing : it loads fine, and the buffer is displayed, but when I hit 'Compile' - without changing anything in the script - it crashes HISE.

                                    Develop branch
                                    Win10 & VS17 / Ventura & Xcode 14. 3

                                    1 Reply Last reply Reply Quote 0
                                    • Matt_SFM
                                      Matt_SF
                                      last edited by

                                      Bibidi babidi bump !

                                      @Christoph-Hart could you take a look at this if you have a moment please?
                                      Just tell me if there is indeed something to be fixed, or if I need another tee-shirt 🙂

                                      Develop branch
                                      Win10 & VS17 / Ventura & Xcode 14. 3

                                      1 Reply Last reply Reply Quote 0
                                      • Matt_SFM
                                        Matt_SF
                                        last edited by Matt_SF

                                        Ok, if someone hits the same issue, I might have found a solution for this. I don't know if that's the proper way of handling it, but it seems to be working ok.

                                        I chaned this bit, and replaced the assertion:

                                        bool isConstant() const override
                                        {
                                            jassert(ns != nullptr); 
                                            auto v = ns->constObjects.getValueAt(index);
                                        
                                            // objects and arrays are not constant...
                                            return !v.isArray() && !v.isObject();
                                        }
                                        

                                        by this :

                                        bool isConstant() const override
                                        {
                                            if (ns == nullptr)
                                                return false;    
                                                
                                            auto v = ns->constObjects.getValueAt(index);
                                        
                                            // objects and arrays are not constant...
                                            return !v.isArray() && !v.isObject();
                                        }
                                        

                                        Develop branch
                                        Win10 & VS17 / Ventura & Xcode 14. 3

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        45

                                        Online

                                        1.7k

                                        Users

                                        11.7k

                                        Topics

                                        102.0k

                                        Posts