void InfiGLDestroyContextObjects( SDL_GLContext ctx ) { ObjMap::iterator vai = vertexarrays.find( ctx ); if ( vai != vertexarrays.end() ) { ObjSet* va = vai->second; uint32* bufferva = new uint32[va->size()]; ObjSet::iterator vaiter = va->begin(); for ( uint32 i=0;vaiter!=va->end();++vaiter,++i ) bufferva[i] = *vaiter; InfiGLDeleteVertexArrays( va->size(), bufferva ); delete[] bufferva; delete va; } ObjMap::iterator fbi = framebuffers.find( ctx ); if ( fbi != framebuffers.end() ) { ObjSet* fb = fbi->second; uint32* bufferfb = new uint32[fb->size()]; ObjSet::iterator fbiter = fb->begin(); for ( uint32 i=0;fbiter!=fb->end();++fbiter,++i ) bufferfb[i] = *fbiter; InfiGLDeleteFramebuffers( fb->size(), bufferfb ); delete[] bufferfb; delete fb; } }
PyObject *PyAtom::Retrieve(size_t id) { ObjMap::iterator it = objmap.find(id); PyObject *ret = it == objmap.end()?NULL:it->second; Collect(); return ret; }
static ObjSet* get_framebuffer() { SDL_GLContext ctx = InfiCurrentContext(); ObjMap::iterator f = framebuffers.find( ctx ); if ( f == framebuffers.end() ) { ObjSet* narr = new ObjSet; framebuffers.insert( f, std::make_pair( ctx, narr ) ); return narr; } else { return f->second; } }
GeoObject * find_obj( std::string & objname, bool do_throw=true ) { //DBG << "( find_obj() " << objname << " )\n"; ObjMap::iterator p = _objmap.find(objname); if (p==_objmap.end()) { //DBG << " -- (not found)\n"; if (do_throw) throw("couldn't look up "+objname); else return 0; } //DBG << "( find_obj() " << objname << "==" << (p->second) << " )\n"; return p->second; }
int Database::save_obj(Object * & obj) { string key = wstring_to_string(obj->name); Json::Value attrs; ObjMapMap::iterator it = obj->attr_maps.begin(); for (; it != obj->attr_maps.end(); it++){ ObjMap * map = it->second; string map_name = it->first; ObjMap::iterator i = map->begin(); attrs[map_name] = Json::nullValue; for (; i != map->end(); i++){ attrs[map_name].append(wstring_to_string(i->first)); } } root[key] = attrs; return 0; }
void PyAtom::Collect() { for(;;) { ObjMap::iterator it = objmap.begin(); if(it == objmap.end() || it->first > collix) break; PyObject *obj = it->second; Py_DECREF(obj); objmap.erase(it); #ifdef _DEBUG // post("DEL %p\n",obj); #endif } // schedule next collect time double tm = flext::GetTime(); if(tm > last+INTV) last = tm,collix = curix; }
double getObjCoef(IloNumVar x) const { ObjMap::const_iterator const it = objMap.find(x); return (it == objMap.end()) ? 0.0 : it->second; }