Example #1
0
void Graphics::del_scene(const string& name) {
#ifdef DEBUG__
	if(m_Scenemap.find(name) == m_Scenemap.end()) {
		cout << "Scene name not found!" << endl;
		throw 0;
	}
#endif
	Scene* scene = m_Scenemap[name];
	if(m_curScene == scene)
		m_curScene = m_Scenemap["Default__"];

	delete scene;
	del_slot(name);
	m_Scenemap.erase(name);
}
int main(int argc, char *argv[])
{

   do
   {
        prev_ptr = NIL_HOLE;
        hp = hole_head;
        candidate = hole_head;

        last_hole_prev = NIL_HOLE;
        while(hp != NIL_HOLE && hp->h_base < swap_base)
        {
            if(hp->h_len >= clicks && hp->h_len < candidate->h_len)
            {
                last_hole_prev = prev_ptr;
                candidate = hp;
            }
            prev_ptr = last_hole_prev;
            hp = candidate;
            last_hole_prev = NIL_HOLE;
        }
        if (candidate != NIL_HOLE)
        {
            hp = candidate; prev_ptr = last_hole_prev;
            /* We found a hole that is big enough.  Use it. */
      		old_base = hp->h_base;	/* remember where it started */
      		hp->h_base += clicks;	/* bite a piece off */
      		hp->h_len -= clicks;	/* ditto */

      		// Remember new high watermark of used memory.
      		if(hp->h_base > high_watermark)
      		high_watermark = hp->h_base;

      		// Delete the hole if used up completely.
      		if (hp->h_len == 0) del_slot(prev_ptr, hp);

      		// Return the start address of the acquired block.
      		return(old_base);
         }

    }while(swap_out());     //try to swap out some other process
return(NO_MEM);
}