File tree Expand file tree Collapse file tree 2 files changed +12
-2
lines changed Expand file tree Collapse file tree 2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -37,7 +37,15 @@ class RecordFieldReorganizer {
3737};
3838
3939class Randstruct : public RecordFieldReorganizer {
40+ public:
41+ Randstruct (std::string seed) : Seq(seed.begin(), seed.end()), rng(Seq) {}
42+ private:
43+ std::seed_seq Seq;
44+ std::default_random_engine rng;
4045protected:
46+ virtual SmallVector<FieldDecl *, 64 > randomize () override ;
47+ SmallVector<Decl *, 64 > Randstruct::perfrandomize (const ASTContext &ctx,
48+ SmallVector<Decl *, 64 > fields);
4149 virtual void reorganize (const ASTContext &C, const RecordDecl *D,
4250 SmallVector<Decl *, 64 > &NewOrder) const override ;
4351};
Original file line number Diff line number Diff line change @@ -144,14 +144,16 @@ bool BitfieldRun::canFit(size_t size) const {
144144
145145bool BitfieldRun::isBitfieldRun () const { return true ; }
146146
147- SmallVector<Decl *, 64 > randomize (SmallVector<Decl *, 64 > fields) {
147+ SmallVector<Decl *, 64 > Randstruct:: randomize (SmallVector<Decl *, 64 > fields) {
148148 std::seed_seq Seq (RandstructSeed.begin (), RandstructSeed.end ());
149149 auto rng = std::default_random_engine{Seq};
150150 std::shuffle (std::begin (fields), std::end (fields), rng);
151151 return fields;
152152}
153153
154- SmallVector<Decl *, 64 > perfrandomize (const ASTContext &ctx,
154+ Randstruct::Randstruct (std::String Seed) { RandstructSeed = Seed; }
155+
156+ SmallVector<Decl *, 64 > Randstruct::perfrandomize (const ASTContext &ctx,
155157 SmallVector<Decl *, 64 > fields) {
156158 // All of the buckets produced by best-effort cache-line algorithm.
157159 std::vector<std::unique_ptr<Bucket>> buckets;
You can’t perform that action at this time.
0 commit comments