diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-03-02 20:04:22 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-03-02 20:13:52 -0800 |
| commit | 38b2b74413da1d982df82fbb9552373b7dc52e69 (patch) | |
| tree | 3fef2d071778e6ca4c2e616ecea4e519f44fa5fd /src | |
| parent | 6b0c4822c10d1e0824043f81fc9e39096cc40172 (diff) | |
| download | rust-38b2b74413da1d982df82fbb9552373b7dc52e69.tar.gz rust-38b2b74413da1d982df82fbb9552373b7dc52e69.zip | |
rt: Move RUST_POISON_ON_FREE into rust_env
Diffstat (limited to 'src')
| -rw-r--r-- | src/rt/memory_region.cpp | 8 | ||||
| -rw-r--r-- | src/rt/rust_env.cpp | 2 | ||||
| -rw-r--r-- | src/rt/rust_env.h | 1 |
3 files changed, 4 insertions, 7 deletions
diff --git a/src/rt/memory_region.cpp b/src/rt/memory_region.cpp index 29099fb14f2..e4130e80f5a 100644 --- a/src/rt/memory_region.cpp +++ b/src/rt/memory_region.cpp @@ -204,14 +204,8 @@ memory_region::claim_alloc(void *mem) { void memory_region::maybe_poison(void *mem) { - // TODO: We should lock this, in case the compiler doesn't. - static int poison = -1; - if (poison < 0) { - char *env_str = getenv("RUST_POISON_ON_FREE"); - poison = env_str != NULL && env_str[0] != '\0'; - } - if (!poison) + if (!_srv->env->poison_on_free) return; # if RUSTRT_TRACK_ALLOCATIONS >= 1 diff --git a/src/rt/rust_env.cpp b/src/rt/rust_env.cpp index bdec4c28435..ab9bf9d75fa 100644 --- a/src/rt/rust_env.cpp +++ b/src/rt/rust_env.cpp @@ -13,6 +13,7 @@ #define CHECK_CLAIMS "CHECK_CLAIMS" #define DETAILED_LEAKS "DETAILED_LEAKS" #define RUST_SEED "RUST_SEED" +#define RUST_POISON_ON_FREE "RUST_POISON_ON_FREE" #if defined(__WIN32__) static int @@ -116,6 +117,7 @@ load_env() { env->check_claims = getenv(CHECK_CLAIMS) != NULL; env->detailed_leaks = getenv(DETAILED_LEAKS) != NULL; env->rust_seed = copyenv(RUST_SEED); + env->poison_on_free = getenv(RUST_POISON_ON_FREE) != NULL; return env; } diff --git a/src/rt/rust_env.h b/src/rt/rust_env.h index eecdb7931b4..adf3dc8a7d4 100644 --- a/src/rt/rust_env.h +++ b/src/rt/rust_env.h @@ -6,6 +6,7 @@ struct rust_env { bool check_claims; bool detailed_leaks; char* rust_seed; + bool poison_on_free; }; rust_env* load_env(); |
