summaryrefslogtreecommitdiffstats
path: root/js/src/vm/Caches.h
diff options
context:
space:
mode:
authortrav90 <travawine@palemoon.org>2018-09-12 05:41:41 -0500
committertrav90 <travawine@palemoon.org>2018-09-12 05:41:41 -0500
commit847f12e88faf1b9a34d0b6fa9b262dfed209aedb (patch)
treecfec69fc3613d921f0f466574f8c67695f246a96 /js/src/vm/Caches.h
parent2f64d5eeecdeb995504748e3da37964d22cc27f0 (diff)
downloadUXP-847f12e88faf1b9a34d0b6fa9b262dfed209aedb.tar
UXP-847f12e88faf1b9a34d0b6fa9b262dfed209aedb.tar.gz
UXP-847f12e88faf1b9a34d0b6fa9b262dfed209aedb.tar.lz
UXP-847f12e88faf1b9a34d0b6fa9b262dfed209aedb.tar.xz
UXP-847f12e88faf1b9a34d0b6fa9b262dfed209aedb.zip
Stop using PodZero in several places to initialize values of non-trivial type
Diffstat (limited to 'js/src/vm/Caches.h')
-rw-r--r--js/src/vm/Caches.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/js/src/vm/Caches.h b/js/src/vm/Caches.h
index 91a78bdc8..b11dd9dcb 100644
--- a/js/src/vm/Caches.h
+++ b/js/src/vm/Caches.h
@@ -7,6 +7,8 @@
#ifndef vm_Caches_h
#define vm_Caches_h
+#include <new>
+
#include "jsatom.h"
#include "jsbytecode.h"
#include "jsobj.h"
@@ -191,14 +193,20 @@ class NewObjectCache
char templateObject[MAX_OBJ_SIZE];
};
- Entry entries[41]; // TODO: reconsider size
+ using EntryArray = Entry[41]; // TODO: reconsider size;
+ EntryArray entries;
public:
- typedef int EntryIndex;
+ using EntryIndex = int;
+
+ NewObjectCache()
+ : entries{} // zeroes out the array
+ {}
- NewObjectCache() { mozilla::PodZero(this); }
- void purge() { mozilla::PodZero(this); }
+ void purge() {
+ new (&entries) EntryArray{}; // zeroes out the array
+ }
/* Remove any cached items keyed on moved objects. */
void clearNurseryObjects(JSRuntime* rt);