void JSStack::sanitizeStack() { ASSERT(topOfStack() <= baseOfStack()); if (m_lastStackTop < topOfStack()) { char* begin = reinterpret_cast<char*>(m_lastStackTop + 1); char* end = reinterpret_cast<char*>(topOfStack() + 1); memset(begin, 0, end - begin); } m_lastStackTop = topOfStack(); }
void JSStack::sanitizeStack() { #if !defined(ADDRESS_SANITIZER) ASSERT(topOfStack() <= baseOfStack()); if (m_lastStackTop < topOfStack()) { char* begin = reinterpret_cast<char*>(m_lastStackTop + 1); char* end = reinterpret_cast<char*>(topOfStack() + 1); memset(begin, 0, end - begin); } m_lastStackTop = topOfStack(); #endif }
// Walks through xml data, creating and filling layers with tiles void MapManager::createLayers() { std::list<const rapidxml::xml_node<>* > layers = parser.findNodes("layer"); std::vector<Tile> newLayer; std::string id; std::stringstream strm; std::stringstream nameStrm; unsigned int tileIndex=0; std::string collision; unsigned int layerIndex=0; std::vector<Tile*> topOfStack(mapWidth*mapHeight); unsigned int worldWidth = Gamedata::getInstance().getXmlInt("worldWidth"); unsigned int worldHeight = Gamedata::getInstance().getXmlInt("worldHeight"); // Walk through layer tags (height levels) for(std::list<const rapidxml::xml_node<>* >::const_iterator iterator = layers.begin(); iterator!= layers.end();++iterator) { tileIndex =0; // walk through tile ids in layer for(rapidxml::xml_node<>* node= (*iterator)->first_node();node; node=node->next_sibling()) { collision="false"; // walk through their attributes for(rapidxml::xml_attribute<>* attr = node->first_attribute();attr; attr=attr->next_attribute()) { strm << attr->value(); if(strcmp(attr->name(),"id")==0) { strm >>id; } else if(strcmp(attr->name(), "collision")==0) { strm>>collision; } else { throw std::string("Bad attribute for tile \"")+attr->name()+std::string("\"");
void JSStack::gatherConservativeRoots(ConservativeRoots& conservativeRoots, JITStubRoutineSet& jitStubRoutines, CodeBlockSet& codeBlocks) { conservativeRoots.add(topOfStack() + 1, highAddress(), jitStubRoutines, codeBlocks); }
void JSStack::gatherConservativeRoots(ConservativeRoots& conservativeRoots) { conservativeRoots.add(topOfStack() + 1, highAddress()); }