// virtual // value might be a string or a UUID void LLIconCtrl::setValue(const LLSD& value ) { LLSD tvalue(value); if (value.isString() && LLUUID::validate(value.asString())) { //RN: support UUIDs masquerading as strings tvalue = LLSD(LLUUID(value.asString())); } LLUICtrl::setValue(tvalue); if (tvalue.isUUID()) { mImagep = LLUI::getUIImageByID(tvalue.asUUID(), mPriority); } else { mImagep = LLUI::getUIImage(tvalue.asString(), mPriority); } if (mImagep.notNull() && mImagep->getImage().notNull() && mMinWidth && mMinHeight) { mImagep->getImage()->setKnownDrawSize(llmax(mMinWidth, mImagep->getWidth()), llmax(mMinHeight, mImagep->getHeight())); } }
const surface tminimap::get_image(const int w, const int h) const { if(!terrain_) { return NULL; } if(terrain_ != terrain) { #ifdef DEBUG_MINIMAP_CACHE std::cerr << "\nFlush cache.\n"; #else DBG_GUI_D << "Flushing the minimap cache.\n"; #endif terrain = terrain_; cache.clear(); } const tkey key(w, h, map_data_); tcache::iterator itor = cache.find(key); if(itor != cache.end()) { #ifdef DEBUG_MINIMAP_CACHE std::cerr << '+'; #endif itor->second.age++; return itor->second.surf; } if(cache.size() >= cache_max_size) { shrink_cache(); } try { const gamemap map(boost::make_shared<terrain_type_data>(*terrain_), map_data_); const surface surf = image::getMinimap(w, h, map, NULL); cache.insert(std::make_pair(key, tvalue(surf))); #ifdef DEBUG_MINIMAP_CACHE std::cerr << '-'; #endif return surf; } catch(incorrect_map_format_error& e) { ERR_CF << "Error while loading the map: " << e.message << '\n'; #ifdef DEBUG_MINIMAP_CACHE std::cerr << 'X'; #endif } return NULL; }
// virtual // value might be a string or a UUID void LLIconCtrl::setValue(const LLSD& value ) { LLSD tvalue(value); if (value.isString() && LLUUID::validate(value.asString())) { //RN: support UUIDs masquerading as strings tvalue = LLSD(LLUUID(value.asString())); } LLUICtrl::setValue(tvalue); if (tvalue.isUUID()) { mImagep = LLUI::getUIImageByID(tvalue.asUUID(), mPriority); } else { mImagep = LLUI::getUIImage(tvalue.asString(), mPriority); } setIconImageDrawSize(); }
END_TEST START_TEST (tryalloc_iterate_memory) { void * allocs[10]; try { for(int i = 0; i < 10; i++) allocs[i] = tmalloc(10); throw((void *)0x01); } catch(e, m) { int i = 0; while(m != NULL) { ck_assert_ptr_eq(tvalue(m), allocs[i]); i++; m = tnext(m); } } }