Commit a9783add authored by Kevin Modzelewski's avatar Kevin Modzelewski

Further optimize visitRange by adding and using a "pushall"

parent 352b3b98
...@@ -55,11 +55,13 @@ void TraceStackGCVisitor::visit(void* p) { ...@@ -55,11 +55,13 @@ void TraceStackGCVisitor::visit(void* p) {
} }
void TraceStackGCVisitor::visitRange(void** start, void** end) { void TraceStackGCVisitor::visitRange(void** start, void** end) {
stack->reserve(end-start); #ifndef NDEBUG
while (start < end) { while (start < end) {
_visit(*start); assert(isValid(*start));
start++; start++;
} }
#endif
stack->pushall(start, end);
} }
void TraceStackGCVisitor::visitPotential(void* p) { void TraceStackGCVisitor::visitPotential(void* p) {
......
...@@ -51,6 +51,10 @@ class TraceStack { ...@@ -51,6 +51,10 @@ class TraceStack {
std::vector<void*> v; std::vector<void*> v;
public: public:
void pushall(void** start, void** end) {
v.insert(v.end(), start, end);
}
void push(void* p) { void push(void* p) {
v.push_back(p); v.push_back(p);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment