Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd2197fb authored by Jason Sams's avatar Jason Sams
Browse files

Add script to script call support. Add exception to catch out of bound index...

Add script to script call support.  Add exception to catch out of bound index data when added to TriangleMeshBuilder.
parent dc2ccb82
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -290,6 +290,11 @@ public class SimpleMesh extends BaseObj {
        }

        public void addTriangle(int idx1, int idx2, int idx3) {
            if((idx1 >= mVtxCount) || (idx1 < 0) ||
               (idx2 >= mVtxCount) || (idx2 < 0) ||
               (idx3 >= mVtxCount) || (idx3 < 0)) {
               throw new IllegalStateException("Index provided greater than vertex count.");
            }
            if ((mIndexCount + 3) >= mIndexData.length) {
                short t[] = new short[mIndexData.length * 2];
                System.arraycopy(mIndexData, 0, t, 0, mIndexData.length);
+1 −1
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ public:

    uint32_t getMessageToClient(void *data, size_t *receiveLen, size_t bufferLen, bool wait);
    bool sendMessageToClient(void *data, uint32_t cmdID, size_t len, bool waitForSpace);
    bool runScript(Script *s, uint32_t launchID);

    void initToClient();
    void deinitToClient();
@@ -212,7 +213,6 @@ private:

    void initEGL();

    bool runScript(Script *s, uint32_t launchID);
    bool runRootScript();

    static void * threadProc(void *);
+10 −0
Original line number Diff line number Diff line
@@ -1008,6 +1008,13 @@ static uint32_t SC_toClient(void *data, int cmdID, int len, int waitForSpace)
    return rsc->sendMessageToClient(data, cmdID, len, waitForSpace != 0);
}

static void SC_scriptCall(int scriptID)
{
    GET_TLS();
    rsc->runScript((Script *)scriptID, 0);
}


//////////////////////////////////////////////////////////////////////////////
// Class implementation
//////////////////////////////////////////////////////////////////////////////
@@ -1289,6 +1296,9 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = {
    { "debugHexI32", (void *)&SC_debugHexI32,
        "void", "(void *, int)" },

    { "scriptCall", (void *)&SC_scriptCall,
        "void", "(int)" },


    { NULL, NULL, NULL, NULL }
};