Example #1
0
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();
}
Example #2
0
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
}
Example #3
0
// 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("\"");
Example #4
0
void JSStack::gatherConservativeRoots(ConservativeRoots& conservativeRoots, JITStubRoutineSet& jitStubRoutines, CodeBlockSet& codeBlocks)
{
    conservativeRoots.add(topOfStack() + 1, highAddress(), jitStubRoutines, codeBlocks);
}
Example #5
0
void JSStack::gatherConservativeRoots(ConservativeRoots& conservativeRoots)
{
    conservativeRoots.add(topOfStack() + 1, highAddress());
}