#include "ConservativeRoots.h"
#include "CodeBlock.h"
+#include "CodeBlockSet.h"
#include "CopiedSpace.h"
#include "CopiedSpaceInlines.h"
-#include "DFGCodeBlocks.h"
#include "JSCell.h"
#include "JSObject.h"
+#include "JSCInlines.h"
#include "Structure.h"
namespace JSC {
template<typename MarkHook>
void ConservativeRoots::genericAddSpan(void* begin, void* end, MarkHook& markHook)
{
- ASSERT(begin <= end);
- ASSERT((static_cast<char*>(end) - static_cast<char*>(begin)) < 0x1000000);
- ASSERT(isPointerAligned(begin));
- ASSERT(isPointerAligned(end));
+ if (begin > end) {
+ void* swapTemp = begin;
+ begin = end;
+ end = swapTemp;
+ }
+
+ RELEASE_ASSERT(isPointerAligned(begin));
+ RELEASE_ASSERT(isPointerAligned(end));
TinyBloomFilter filter = m_blocks->filter(); // Make a local copy of filter to show the compiler it won't alias, and can be register-allocated.
for (char** it = static_cast<char**>(begin); it != static_cast<char**>(end); ++it)
};
void ConservativeRoots::add(
- void* begin, void* end, JITStubRoutineSet& jitStubRoutines, DFGCodeBlocks& dfgCodeBlocks)
+ void* begin, void* end, JITStubRoutineSet& jitStubRoutines, CodeBlockSet& codeBlocks)
{
- CompositeMarkHook<JITStubRoutineSet, DFGCodeBlocks> markHook(
- jitStubRoutines, dfgCodeBlocks);
+ CompositeMarkHook<JITStubRoutineSet, CodeBlockSet> markHook(jitStubRoutines, codeBlocks);
genericAddSpan(begin, end, markHook);
}