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

Commit ce105a90 authored by Jack Palevich's avatar Jack Palevich
Browse files

If the compile failed, return NULL from symbol lookups.

parent 588d2bde
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@
 */

#include <ctype.h>
#include <dlfcn.h>
#include <errno.h>
#include <stdarg.h>
#include <stdint.h>
@@ -3266,6 +3265,7 @@ class Compiler : public ErrorSink {

    String mPragmas;
    int mPragmaStringCount;
    int mCompileResult;

    static const int ALLOC_SIZE = 99999;

@@ -4685,6 +4685,7 @@ class Compiler : public ErrorSink {
        pGlobalBase = 0;
        pGen = 0;
        mPragmaStringCount = 0;
        mCompileResult = 0;
    }

    void setArchitecture(const char* architecture) {
@@ -4780,6 +4781,7 @@ public:
                result = -2;
            }
        }
        mCompileResult = result;
        return result;
    }

@@ -4827,11 +4829,13 @@ public:
     * If found, return its value.
     */
    void* lookup(const char* name) {
        if (mCompileResult == 0) {
            tokenid_t tok = mTokenTable.intern(name, strlen(name));
            VariableInfo* pVariableInfo = VI(tok);
            if (pVariableInfo) {
                return pVariableInfo->pAddress;
            }
        }
        return NULL;
    }