aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/lltexturecache.cpp
diff options
context:
space:
mode:
authorJacek Antonelli2009-08-29 17:44:38 -0500
committerJacek Antonelli2009-08-29 22:49:51 -0500
commit6a5aab98892df74f60743f5b789959c9593d6647 (patch)
tree62da18f8540879ed01e12eeb0ce49375474272e4 /linden/indra/newview/lltexturecache.cpp
parentMerge branch 'mac-openal-url' into next (diff)
parentConverted 1.23 XUI files to unix line endings. (diff)
downloadmeta-impy-6a5aab98892df74f60743f5b789959c9593d6647.zip
meta-impy-6a5aab98892df74f60743f5b789959c9593d6647.tar.gz
meta-impy-6a5aab98892df74f60743f5b789959c9593d6647.tar.bz2
meta-impy-6a5aab98892df74f60743f5b789959c9593d6647.tar.xz
Merged SL 1.23.4 into Imprudence.
Conflicts: linden/doc/contributions.txt linden/indra/CMakeLists.txt linden/indra/cmake/APR.cmake linden/indra/cmake/CopyWinLibs.cmake linden/indra/cmake/OPENAL.cmake linden/indra/develop.py linden/indra/llaudio/audioengine.cpp linden/indra/llcommon/indra_constants.h linden/indra/llcommon/llversionviewer.h linden/indra/llcrashlogger/llcrashlogger.cpp linden/indra/llmedia/llmediaimplgstreamer.cpp linden/indra/llmedia/llmediaimplgstreamer.h linden/indra/llmedia/llmediaimplgstreamer_syms.cpp linden/indra/llmedia/llmediaimplgstreamer_syms.h linden/indra/llmedia/llmediaimplgstreamer_syms_raw.inc linden/indra/llmedia/llmediamanager.cpp linden/indra/llmessage/llassetstorage.cpp linden/indra/llui/lltexteditor.cpp linden/indra/llvfs/lldir.cpp linden/indra/newview/CMakeLists.txt linden/indra/newview/English.lproj/InfoPlist.strings linden/indra/newview/Info-Imprudence.plist linden/indra/newview/app_settings/logcontrol.xml linden/indra/newview/app_settings/settings.xml linden/indra/newview/installers/windows/installer_template.nsi linden/indra/newview/llagent.cpp linden/indra/newview/llappviewer.cpp linden/indra/newview/llcallingcard.cpp linden/indra/newview/llfilepicker.cpp linden/indra/newview/llfloateractivespeakers.cpp linden/indra/newview/llfloateravatarpicker.cpp linden/indra/newview/llfloaterbulkpermission.cpp linden/indra/newview/llfloaterbulkpermission.h linden/indra/newview/llfloaterchat.cpp linden/indra/newview/llfloatergodtools.cpp linden/indra/newview/llfloaterhtmlhelp.cpp linden/indra/newview/llfloatertools.cpp linden/indra/newview/llfloatertools.h linden/indra/newview/llfloatertopobjects.cpp linden/indra/newview/llinventorybridge.cpp linden/indra/newview/llinventoryview.cpp linden/indra/newview/llnetmap.cpp linden/indra/newview/llnetmap.h linden/indra/newview/llpanelland.cpp linden/indra/newview/llpanellogin.cpp linden/indra/newview/llpanelobject.cpp linden/indra/newview/llprefsim.cpp linden/indra/newview/lltexturecache.cpp linden/indra/newview/lltoolbrush.cpp linden/indra/newview/llvieweraudio.cpp linden/indra/newview/llviewermenu.cpp linden/indra/newview/llviewermessage.cpp linden/indra/newview/llviewerparcelmedia.cpp linden/indra/newview/llvoavatar.cpp linden/indra/newview/llwebbrowserctrl.cpp linden/indra/newview/llworldmapview.cpp linden/indra/newview/pipeline.cpp linden/indra/newview/res/viewerRes.rc linden/indra/newview/skins/default/colors_base.xml linden/indra/newview/skins/default/xui/de/floater_active_speakers.xml linden/indra/newview/skins/default/xui/de/floater_instant_message_ad_hoc.xml linden/indra/newview/skins/default/xui/de/floater_instant_message_group.xml linden/indra/newview/skins/default/xui/de/floater_joystick.xml linden/indra/newview/skins/default/xui/de/floater_mute_object.xml linden/indra/newview/skins/default/xui/de/floater_sim_release_message.xml linden/indra/newview/skins/default/xui/de/panel_media_controls.xml linden/indra/newview/skins/default/xui/de/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/de/strings.xml linden/indra/newview/skins/default/xui/de/teleport_strings.xml linden/indra/newview/skins/default/xui/en-us/alerts.xml linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml linden/indra/newview/skins/default/xui/en-us/floater_avatar_picker.xml linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml linden/indra/newview/skins/default/xui/en-us/floater_bulk_perms.xml linden/indra/newview/skins/default/xui/en-us/floater_buy_land.xml linden/indra/newview/skins/default/xui/en-us/floater_chatterbox.xml linden/indra/newview/skins/default/xui/en-us/floater_inventory_view_finder.xml linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml linden/indra/newview/skins/default/xui/en-us/floater_mini_map.xml linden/indra/newview/skins/default/xui/en-us/floater_tools.xml linden/indra/newview/skins/default/xui/en-us/menu_login.xml linden/indra/newview/skins/default/xui/en-us/menu_mini_map.xml linden/indra/newview/skins/default/xui/en-us/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml linden/indra/newview/skins/default/xui/en-us/menu_pie_self.xml linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml linden/indra/newview/skins/default/xui/en-us/notify.xml linden/indra/newview/skins/default/xui/en-us/panel_bars.xml linden/indra/newview/skins/default/xui/en-us/panel_groups.xml linden/indra/newview/skins/default/xui/en-us/panel_media_controls.xml linden/indra/newview/skins/default/xui/en-us/panel_mini_map.xml linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/en-us/strings.xml linden/indra/newview/skins/default/xui/es/alerts.xml linden/indra/newview/skins/default/xui/es/floater_about.xml linden/indra/newview/skins/default/xui/es/floater_about_land.xml linden/indra/newview/skins/default/xui/es/floater_animation_preview.xml linden/indra/newview/skins/default/xui/es/floater_auction.xml linden/indra/newview/skins/default/xui/es/floater_avatar_picker.xml linden/indra/newview/skins/default/xui/es/floater_avatar_textures.xml linden/indra/newview/skins/default/xui/es/floater_build_options.xml linden/indra/newview/skins/default/xui/es/floater_bumps.xml linden/indra/newview/skins/default/xui/es/floater_buy_contents.xml linden/indra/newview/skins/default/xui/es/floater_buy_currency.xml linden/indra/newview/skins/default/xui/es/floater_buy_land.xml linden/indra/newview/skins/default/xui/es/floater_buy_object.xml linden/indra/newview/skins/default/xui/es/floater_chat_history.xml linden/indra/newview/skins/default/xui/es/floater_choose_group.xml linden/indra/newview/skins/default/xui/es/floater_clothing.xml linden/indra/newview/skins/default/xui/es/floater_color_picker.xml linden/indra/newview/skins/default/xui/es/floater_critical.xml linden/indra/newview/skins/default/xui/es/floater_customize.xml linden/indra/newview/skins/default/xui/es/floater_directory.xml linden/indra/newview/skins/default/xui/es/floater_gesture.xml linden/indra/newview/skins/default/xui/es/floater_group_info.xml linden/indra/newview/skins/default/xui/es/floater_html.xml linden/indra/newview/skins/default/xui/es/floater_im.xml linden/indra/newview/skins/default/xui/es/floater_image_preview.xml linden/indra/newview/skins/default/xui/es/floater_import.xml linden/indra/newview/skins/default/xui/es/floater_instant_message.xml linden/indra/newview/skins/default/xui/es/floater_inventory.xml linden/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml linden/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml linden/indra/newview/skins/default/xui/es/floater_land_holdings.xml linden/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml linden/indra/newview/skins/default/xui/es/floater_moveview.xml linden/indra/newview/skins/default/xui/es/floater_mute.xml linden/indra/newview/skins/default/xui/es/floater_name_description.xml linden/indra/newview/skins/default/xui/es/floater_new_im.xml linden/indra/newview/skins/default/xui/es/floater_new_outfit_dialog.xml linden/indra/newview/skins/default/xui/es/floater_openobject.xml linden/indra/newview/skins/default/xui/es/floater_pay.xml linden/indra/newview/skins/default/xui/es/floater_pay_object.xml linden/indra/newview/skins/default/xui/es/floater_postcard.xml linden/indra/newview/skins/default/xui/es/floater_preferences.xml linden/indra/newview/skins/default/xui/es/floater_preview_animation.xml linden/indra/newview/skins/default/xui/es/floater_preview_embedded_texture.xml linden/indra/newview/skins/default/xui/es/floater_preview_gesture.xml linden/indra/newview/skins/default/xui/es/floater_preview_notecard.xml linden/indra/newview/skins/default/xui/es/floater_preview_notecard_keep_discard.xml linden/indra/newview/skins/default/xui/es/floater_preview_sound.xml linden/indra/newview/skins/default/xui/es/floater_preview_texture.xml linden/indra/newview/skins/default/xui/es/floater_preview_texture_keep_discard.xml linden/indra/newview/skins/default/xui/es/floater_price_for_listing.xml linden/indra/newview/skins/default/xui/es/floater_profile.xml linden/indra/newview/skins/default/xui/es/floater_report_abuse.xml linden/indra/newview/skins/default/xui/es/floater_script_debug.xml linden/indra/newview/skins/default/xui/es/floater_script_ed_panel.xml linden/indra/newview/skins/default/xui/es/floater_script_preview.xml linden/indra/newview/skins/default/xui/es/floater_script_queue.xml linden/indra/newview/skins/default/xui/es/floater_script_search.xml linden/indra/newview/skins/default/xui/es/floater_sell_land.xml linden/indra/newview/skins/default/xui/es/floater_settings_debug.xml linden/indra/newview/skins/default/xui/es/floater_snapshot.xml linden/indra/newview/skins/default/xui/es/floater_sound_preview.xml linden/indra/newview/skins/default/xui/es/floater_telehub.xml linden/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml linden/indra/newview/skins/default/xui/es/floater_tools.xml linden/indra/newview/skins/default/xui/es/floater_top_objects.xml linden/indra/newview/skins/default/xui/es/floater_tos.xml linden/indra/newview/skins/default/xui/es/floater_wearable_save_as.xml linden/indra/newview/skins/default/xui/es/floater_world_map.xml linden/indra/newview/skins/default/xui/es/menu_inventory.xml linden/indra/newview/skins/default/xui/es/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/es/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/es/menu_pie_land.xml linden/indra/newview/skins/default/xui/es/menu_pie_object.xml linden/indra/newview/skins/default/xui/es/menu_pie_self.xml linden/indra/newview/skins/default/xui/es/menu_viewer.xml linden/indra/newview/skins/default/xui/es/notify.xml linden/indra/newview/skins/default/xui/es/panel_avatar.xml linden/indra/newview/skins/default/xui/es/panel_avatar_classified.xml linden/indra/newview/skins/default/xui/es/panel_avatar_pick.xml linden/indra/newview/skins/default/xui/es/panel_chat_bar.xml linden/indra/newview/skins/default/xui/es/panel_classified.xml linden/indra/newview/skins/default/xui/es/panel_event.xml linden/indra/newview/skins/default/xui/es/panel_group.xml linden/indra/newview/skins/default/xui/es/panel_group_finder.xml linden/indra/newview/skins/default/xui/es/panel_group_general.xml linden/indra/newview/skins/default/xui/es/panel_group_invite.xml linden/indra/newview/skins/default/xui/es/panel_group_land_money.xml linden/indra/newview/skins/default/xui/es/panel_group_notices.xml linden/indra/newview/skins/default/xui/es/panel_group_roles.xml linden/indra/newview/skins/default/xui/es/panel_group_voting.xml linden/indra/newview/skins/default/xui/es/panel_land_covenant.xml linden/indra/newview/skins/default/xui/es/panel_login.xml linden/indra/newview/skins/default/xui/es/panel_overlaybar.xml linden/indra/newview/skins/default/xui/es/panel_place.xml linden/indra/newview/skins/default/xui/es/panel_place_small.xml linden/indra/newview/skins/default/xui/es/panel_preferences_audio.xml linden/indra/newview/skins/default/xui/es/panel_preferences_chat.xml linden/indra/newview/skins/default/xui/es/panel_preferences_general.xml linden/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml linden/indra/newview/skins/default/xui/es/panel_preferences_im.xml linden/indra/newview/skins/default/xui/es/panel_preferences_input.xml linden/indra/newview/skins/default/xui/es/panel_preferences_network.xml linden/indra/newview/skins/default/xui/es/panel_preferences_popups.xml linden/indra/newview/skins/default/xui/es/panel_region_covenant.xml linden/indra/newview/skins/default/xui/es/panel_region_debug.xml linden/indra/newview/skins/default/xui/es/panel_region_estate.xml linden/indra/newview/skins/default/xui/es/panel_region_general.xml linden/indra/newview/skins/default/xui/es/panel_region_terrain.xml linden/indra/newview/skins/default/xui/es/panel_region_texture.xml linden/indra/newview/skins/default/xui/es/panel_scrolling_param.xml linden/indra/newview/skins/default/xui/es/panel_status_bar.xml linden/indra/newview/skins/default/xui/es/panel_toolbar.xml linden/indra/newview/skins/default/xui/es/panel_top_pick.xml linden/indra/newview/skins/default/xui/fr/alerts.xml linden/indra/newview/skins/default/xui/fr/floater_about.xml linden/indra/newview/skins/default/xui/fr/floater_about_land.xml linden/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml linden/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml linden/indra/newview/skins/default/xui/fr/floater_beacons.xml linden/indra/newview/skins/default/xui/fr/floater_buy_contents.xml linden/indra/newview/skins/default/xui/fr/floater_buy_currency.xml linden/indra/newview/skins/default/xui/fr/floater_buy_land.xml linden/indra/newview/skins/default/xui/fr/floater_chat_history.xml linden/indra/newview/skins/default/xui/fr/floater_clothing.xml linden/indra/newview/skins/default/xui/fr/floater_customize.xml linden/indra/newview/skins/default/xui/fr/floater_directory.xml linden/indra/newview/skins/default/xui/fr/floater_god_tools.xml linden/indra/newview/skins/default/xui/fr/floater_group_info.xml linden/indra/newview/skins/default/xui/fr/floater_html.xml linden/indra/newview/skins/default/xui/fr/floater_im.xml linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml linden/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml linden/indra/newview/skins/default/xui/fr/floater_inventory.xml linden/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml linden/indra/newview/skins/default/xui/fr/floater_joystick.xml linden/indra/newview/skins/default/xui/fr/floater_land_holdings.xml linden/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml linden/indra/newview/skins/default/xui/fr/floater_media_browser.xml linden/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml linden/indra/newview/skins/default/xui/fr/floater_name_description.xml linden/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml linden/indra/newview/skins/default/xui/fr/floater_profile.xml linden/indra/newview/skins/default/xui/fr/floater_report_abuse.xml linden/indra/newview/skins/default/xui/fr/floater_script_search.xml linden/indra/newview/skins/default/xui/fr/floater_sell_land.xml linden/indra/newview/skins/default/xui/fr/floater_snapshot.xml linden/indra/newview/skins/default/xui/fr/floater_sound_preview.xml linden/indra/newview/skins/default/xui/fr/floater_tools.xml linden/indra/newview/skins/default/xui/fr/floater_top_objects.xml linden/indra/newview/skins/default/xui/fr/floater_world_map.xml linden/indra/newview/skins/default/xui/fr/menu_inventory.xml linden/indra/newview/skins/default/xui/fr/menu_login.xml linden/indra/newview/skins/default/xui/fr/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/fr/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/fr/menu_pie_object.xml linden/indra/newview/skins/default/xui/fr/menu_viewer.xml linden/indra/newview/skins/default/xui/fr/notify.xml linden/indra/newview/skins/default/xui/fr/panel_audio.xml linden/indra/newview/skins/default/xui/fr/panel_avatar.xml linden/indra/newview/skins/default/xui/fr/panel_avatar_classified.xml linden/indra/newview/skins/default/xui/fr/panel_classified.xml linden/indra/newview/skins/default/xui/fr/panel_event.xml linden/indra/newview/skins/default/xui/fr/panel_friends.xml linden/indra/newview/skins/default/xui/fr/panel_group_general.xml linden/indra/newview/skins/default/xui/fr/panel_group_invite.xml linden/indra/newview/skins/default/xui/fr/panel_group_land_money.xml linden/indra/newview/skins/default/xui/fr/panel_group_roles.xml linden/indra/newview/skins/default/xui/fr/panel_login.xml linden/indra/newview/skins/default/xui/fr/panel_media_controls.xml linden/indra/newview/skins/default/xui/fr/panel_media_remote_expanded.xml linden/indra/newview/skins/default/xui/fr/panel_overlaybar.xml linden/indra/newview/skins/default/xui/fr/panel_place.xml linden/indra/newview/skins/default/xui/fr/panel_place_small.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_audio.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_general.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_im.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_input.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_network.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/fr/panel_region_covenant.xml linden/indra/newview/skins/default/xui/fr/panel_region_debug.xml linden/indra/newview/skins/default/xui/fr/panel_region_general.xml linden/indra/newview/skins/default/xui/fr/panel_voice_controls.xml linden/indra/newview/skins/default/xui/fr/role_actions.xml linden/indra/newview/skins/default/xui/fr/strings.xml linden/indra/newview/skins/default/xui/fr/teleport_strings.xml linden/indra/newview/skins/default/xui/ja/floater_active_speakers.xml linden/indra/newview/skins/default/xui/ja/floater_html.xml linden/indra/newview/skins/default/xui/ja/floater_instant_message_ad_hoc.xml linden/indra/newview/skins/default/xui/ja/floater_instant_message_group.xml linden/indra/newview/skins/default/xui/ja/floater_joystick.xml linden/indra/newview/skins/default/xui/ja/floater_media_browser.xml linden/indra/newview/skins/default/xui/ja/floater_windlight_options.xml linden/indra/newview/skins/default/xui/ja/menu_login.xml linden/indra/newview/skins/default/xui/ja/panel_friends.xml linden/indra/newview/skins/default/xui/ja/panel_media_controls.xml linden/indra/newview/skins/default/xui/ja/panel_media_remote_expanded.xml linden/indra/newview/skins/default/xui/ja/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/ja/panel_speaker_controls.xml linden/indra/newview/skins/default/xui/ja/strings.xml linden/indra/newview/skins/default/xui/ja/teleport_strings.xml linden/indra/newview/skins/default/xui/ko/panel_media_controls.xml linden/indra/newview/skins/default/xui/pt/alerts.xml linden/indra/newview/skins/default/xui/pt/floater_about.xml linden/indra/newview/skins/default/xui/pt/floater_about_land.xml linden/indra/newview/skins/default/xui/pt/floater_active_speakers.xml linden/indra/newview/skins/default/xui/pt/floater_animation_preview.xml linden/indra/newview/skins/default/xui/pt/floater_auction.xml linden/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml linden/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml linden/indra/newview/skins/default/xui/pt/floater_beacons.xml linden/indra/newview/skins/default/xui/pt/floater_build_options.xml linden/indra/newview/skins/default/xui/pt/floater_bumps.xml linden/indra/newview/skins/default/xui/pt/floater_buy_contents.xml linden/indra/newview/skins/default/xui/pt/floater_buy_currency.xml linden/indra/newview/skins/default/xui/pt/floater_buy_land.xml linden/indra/newview/skins/default/xui/pt/floater_buy_object.xml linden/indra/newview/skins/default/xui/pt/floater_chat_history.xml linden/indra/newview/skins/default/xui/pt/floater_clothing.xml linden/indra/newview/skins/default/xui/pt/floater_color_picker.xml linden/indra/newview/skins/default/xui/pt/floater_critical.xml linden/indra/newview/skins/default/xui/pt/floater_customize.xml linden/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml linden/indra/newview/skins/default/xui/pt/floater_directory.xml linden/indra/newview/skins/default/xui/pt/floater_env_settings.xml linden/indra/newview/skins/default/xui/pt/floater_gesture.xml linden/indra/newview/skins/default/xui/pt/floater_god_tools.xml linden/indra/newview/skins/default/xui/pt/floater_group_info.xml linden/indra/newview/skins/default/xui/pt/floater_im.xml linden/indra/newview/skins/default/xui/pt/floater_image_preview.xml linden/indra/newview/skins/default/xui/pt/floater_inspect.xml linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml linden/indra/newview/skins/default/xui/pt/floater_instant_message_ad_hoc.xml linden/indra/newview/skins/default/xui/pt/floater_instant_message_group.xml linden/indra/newview/skins/default/xui/pt/floater_inventory.xml linden/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml linden/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml linden/indra/newview/skins/default/xui/pt/floater_joystick.xml linden/indra/newview/skins/default/xui/pt/floater_lagmeter.xml linden/indra/newview/skins/default/xui/pt/floater_land_holdings.xml linden/indra/newview/skins/default/xui/pt/floater_landmark_ctrl.xml linden/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml linden/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml linden/indra/newview/skins/default/xui/pt/floater_media_browser.xml linden/indra/newview/skins/default/xui/pt/floater_moveview.xml linden/indra/newview/skins/default/xui/pt/floater_mute.xml linden/indra/newview/skins/default/xui/pt/floater_mute_object.xml linden/indra/newview/skins/default/xui/pt/floater_name_description.xml linden/indra/newview/skins/default/xui/pt/floater_new_outfit_dialog.xml linden/indra/newview/skins/default/xui/pt/floater_openobject.xml linden/indra/newview/skins/default/xui/pt/floater_pay.xml linden/indra/newview/skins/default/xui/pt/floater_postcard.xml linden/indra/newview/skins/default/xui/pt/floater_preferences.xml linden/indra/newview/skins/default/xui/pt/floater_preview_animation.xml linden/indra/newview/skins/default/xui/pt/floater_preview_classified.xml linden/indra/newview/skins/default/xui/pt/floater_preview_event.xml linden/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml linden/indra/newview/skins/default/xui/pt/floater_preview_notecard_keep_discard.xml linden/indra/newview/skins/default/xui/pt/floater_preview_sound.xml linden/indra/newview/skins/default/xui/pt/floater_preview_url.xml linden/indra/newview/skins/default/xui/pt/floater_price_for_listing.xml linden/indra/newview/skins/default/xui/pt/floater_profile.xml linden/indra/newview/skins/default/xui/pt/floater_report_abuse.xml linden/indra/newview/skins/default/xui/pt/floater_script_debug.xml linden/indra/newview/skins/default/xui/pt/floater_script_queue.xml linden/indra/newview/skins/default/xui/pt/floater_script_search.xml linden/indra/newview/skins/default/xui/pt/floater_sell_land.xml linden/indra/newview/skins/default/xui/pt/floater_settings_debug.xml linden/indra/newview/skins/default/xui/pt/floater_sim_release_message.xml linden/indra/newview/skins/default/xui/pt/floater_snapshot.xml linden/indra/newview/skins/default/xui/pt/floater_sound_preview.xml linden/indra/newview/skins/default/xui/pt/floater_telehub.xml linden/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml linden/indra/newview/skins/default/xui/pt/floater_tools.xml linden/indra/newview/skins/default/xui/pt/floater_top_objects.xml linden/indra/newview/skins/default/xui/pt/floater_tos.xml linden/indra/newview/skins/default/xui/pt/floater_url_entry.xml linden/indra/newview/skins/default/xui/pt/floater_water.xml linden/indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml linden/indra/newview/skins/default/xui/pt/floater_windlight_options.xml linden/indra/newview/skins/default/xui/pt/floater_world_map.xml linden/indra/newview/skins/default/xui/pt/menu_inventory.xml linden/indra/newview/skins/default/xui/pt/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/pt/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/pt/menu_pie_land.xml linden/indra/newview/skins/default/xui/pt/menu_pie_object.xml linden/indra/newview/skins/default/xui/pt/menu_viewer.xml linden/indra/newview/skins/default/xui/pt/notify.xml linden/indra/newview/skins/default/xui/pt/panel_account_details.xml linden/indra/newview/skins/default/xui/pt/panel_account_planning.xml linden/indra/newview/skins/default/xui/pt/panel_account_transactions.xml linden/indra/newview/skins/default/xui/pt/panel_audio_device.xml linden/indra/newview/skins/default/xui/pt/panel_avatar.xml linden/indra/newview/skins/default/xui/pt/panel_avatar_classified.xml linden/indra/newview/skins/default/xui/pt/panel_avatar_pick.xml linden/indra/newview/skins/default/xui/pt/panel_chat_bar.xml linden/indra/newview/skins/default/xui/pt/panel_classified.xml linden/indra/newview/skins/default/xui/pt/panel_event.xml linden/indra/newview/skins/default/xui/pt/panel_friends.xml linden/indra/newview/skins/default/xui/pt/panel_group.xml linden/indra/newview/skins/default/xui/pt/panel_group_finder.xml linden/indra/newview/skins/default/xui/pt/panel_group_general.xml linden/indra/newview/skins/default/xui/pt/panel_group_invite.xml linden/indra/newview/skins/default/xui/pt/panel_group_land_money.xml linden/indra/newview/skins/default/xui/pt/panel_group_notices.xml linden/indra/newview/skins/default/xui/pt/panel_group_roles.xml linden/indra/newview/skins/default/xui/pt/panel_group_voting.xml linden/indra/newview/skins/default/xui/pt/panel_land_covenant.xml linden/indra/newview/skins/default/xui/pt/panel_login.xml linden/indra/newview/skins/default/xui/pt/panel_overlaybar.xml linden/indra/newview/skins/default/xui/pt/panel_place.xml linden/indra/newview/skins/default/xui/pt/panel_place_small.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_audio.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_general.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_im.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_input.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_network.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_popups.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_web.xml linden/indra/newview/skins/default/xui/pt/panel_region_covenant.xml linden/indra/newview/skins/default/xui/pt/panel_region_debug.xml linden/indra/newview/skins/default/xui/pt/panel_region_estate.xml linden/indra/newview/skins/default/xui/pt/panel_region_general.xml linden/indra/newview/skins/default/xui/pt/panel_region_terrain.xml linden/indra/newview/skins/default/xui/pt/panel_region_texture.xml linden/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml linden/indra/newview/skins/default/xui/pt/panel_speaker_controls.xml linden/indra/newview/skins/default/xui/pt/panel_status_bar.xml linden/indra/newview/skins/default/xui/pt/panel_toolbar.xml linden/indra/newview/skins/default/xui/pt/panel_top_pick.xml linden/indra/newview/skins/default/xui/pt/panel_voice_controls.xml linden/indra/newview/skins/default/xui/pt/panel_voice_enable.xml linden/indra/newview/skins/default/xui/pt/panel_voice_options.xml linden/indra/newview/skins/default/xui/pt/strings.xml linden/indra/newview/skins/default/xui/pt/teleport_strings.xml linden/indra/newview/skins/default/xui/zh/floater_env_settings.xml linden/indra/newview/skins/default/xui/zh/floater_instant_message_ad_hoc.xml linden/indra/newview/skins/default/xui/zh/floater_lagmeter.xml linden/indra/newview/skins/default/xui/zh/floater_landmark_ctrl.xml linden/indra/newview/skins/default/xui/zh/floater_post_process.xml linden/indra/newview/skins/default/xui/zh/floater_settings_debug.xml linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml linden/indra/newview/skins/default/xui/zh/menu_viewer.xml linden/indra/newview/skins/default/xui/zh/panel_avatar.xml linden/indra/newview/skins/default/xui/zh/panel_friends.xml linden/indra/newview/skins/default/xui/zh/panel_group_general.xml linden/indra/newview/skins/default/xui/zh/panel_group_invite.xml linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml linden/indra/newview/skins/default/xui/zh/panel_group_notices.xml linden/indra/newview/skins/default/xui/zh/panel_group_roles.xml linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml linden/indra/newview/skins/default/xui/zh/panel_region_covenant.xml linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml linden/indra/newview/skins/default/xui/zh/strings.xml linden/indra/newview/skins/silver/colors_base.xml linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml linden/indra/newview/skins/silver/xui/en-us/floater_directory.xml linden/indra/newview/skins/silver/xui/en-us/floater_tools.xml linden/indra/newview/skins/silver/xui/en-us/panel_media_controls.xml linden/indra/newview/viewer_manifest.py linden/install.xml
Diffstat (limited to 'linden/indra/newview/lltexturecache.cpp')
-rw-r--r--linden/indra/newview/lltexturecache.cpp139
1 files changed, 79 insertions, 60 deletions
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp
index 94a5372..3b724e2 100644
--- a/linden/indra/newview/lltexturecache.cpp
+++ b/linden/indra/newview/lltexturecache.cpp
@@ -17,7 +17,8 @@
17 * There are special exceptions to the terms and conditions of the GPL as 17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception 18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or 19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception 20 * online at
21 * http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 * 22 *
22 * By copying, modifying or distributing this software, you acknowledge 23 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above, 24 * that you have read and understood your obligations described above,
@@ -174,7 +175,7 @@ private:
174 175
175bool LLTextureCacheLocalFileWorker::doRead() 176bool LLTextureCacheLocalFileWorker::doRead()
176{ 177{
177 S32 local_size = ll_apr_file_size(mFileName, mCache->getFileAPRPool()); 178 S32 local_size = LLAPRFile::size(mFileName, mCache->getLocalAPRFilePool());
178 179
179 if (local_size > 0 && mFileName.size() > 4) 180 if (local_size > 0 && mFileName.size() > 4)
180 { 181 {
@@ -247,8 +248,9 @@ bool LLTextureCacheLocalFileWorker::doRead()
247 mDataSize = local_size; 248 mDataSize = local_size;
248 } 249 }
249 mReadData = new U8[mDataSize]; 250 mReadData = new U8[mDataSize];
250 S32 bytes_read = ll_apr_file_read_ex(mFileName, mCache->getFileAPRPool(), 251
251 mReadData, mOffset, mDataSize); 252 S32 bytes_read = LLAPRFile::readEx(mFileName, mReadData, mOffset, mDataSize, mCache->getLocalAPRFilePool());
253
252 if (bytes_read != mDataSize) 254 if (bytes_read != mDataSize)
253 { 255 {
254// llwarns << "Error reading file from local cache: " << mFileName 256// llwarns << "Error reading file from local cache: " << mFileName
@@ -316,11 +318,11 @@ bool LLTextureCacheRemoteWorker::doRead()
316 { 318 {
317 std::string filename = mCache->getLocalFileName(mID); 319 std::string filename = mCache->getLocalFileName(mID);
318 local_filename = filename + ".j2c"; 320 local_filename = filename + ".j2c";
319 local_size = ll_apr_file_size(local_filename, mCache->getFileAPRPool()); 321 local_size = LLAPRFile::size(local_filename, mCache->getLocalAPRFilePool());
320 if (local_size == 0) 322 if (local_size == 0)
321 { 323 {
322 local_filename = filename + ".tga"; 324 local_filename = filename + ".tga";
323 local_size = ll_apr_file_size(local_filename, mCache->getFileAPRPool()); 325 local_size = LLAPRFile::size(local_filename, mCache->getLocalAPRFilePool());
324 if (local_size > 0) 326 if (local_size > 0)
325 { 327 {
326 mImageFormat = IMG_CODEC_TGA; 328 mImageFormat = IMG_CODEC_TGA;
@@ -388,8 +390,8 @@ bool LLTextureCacheRemoteWorker::doRead()
388 mDataSize = local_size; 390 mDataSize = local_size;
389 } 391 }
390 mReadData = new U8[mDataSize]; 392 mReadData = new U8[mDataSize];
391 S32 bytes_read = ll_apr_file_read_ex(local_filename, mCache->getFileAPRPool(), 393 S32 bytes_read = LLAPRFile::readEx(local_filename,
392 mReadData, mOffset, mDataSize); 394 mReadData, mOffset, mDataSize, mCache->getLocalAPRFilePool());
393 if (bytes_read != mDataSize) 395 if (bytes_read != mDataSize)
394 { 396 {
395// llwarns << "Error reading file from local cache: " << local_filename 397// llwarns << "Error reading file from local cache: " << local_filename
@@ -482,8 +484,8 @@ bool LLTextureCacheRemoteWorker::doRead()
482 S32 offset = idx * TEXTURE_CACHE_ENTRY_SIZE + mOffset; 484 S32 offset = idx * TEXTURE_CACHE_ENTRY_SIZE + mOffset;
483 S32 size = TEXTURE_CACHE_ENTRY_SIZE - mOffset; 485 S32 size = TEXTURE_CACHE_ENTRY_SIZE - mOffset;
484 mReadData = new U8[size]; 486 mReadData = new U8[size];
485 S32 bytes_read = ll_apr_file_read_ex(mCache->mHeaderDataFileName, mCache->getFileAPRPool(), 487 S32 bytes_read = LLAPRFile::readEx(mCache->mHeaderDataFileName,
486 mReadData, offset, size); 488 mReadData, offset, size, mCache->getLocalAPRFilePool());
487 if (bytes_read != size) 489 if (bytes_read != size)
488 { 490 {
489// llwarns << "LLTextureCacheWorker: " << mID 491// llwarns << "LLTextureCacheWorker: " << mID
@@ -509,7 +511,7 @@ bool LLTextureCacheRemoteWorker::doRead()
509 if (mFileHandle == LLLFSThread::nullHandle()) 511 if (mFileHandle == LLLFSThread::nullHandle())
510 { 512 {
511 std::string filename = mCache->getTextureFileName(mID); 513 std::string filename = mCache->getTextureFileName(mID);
512 S32 filesize = ll_apr_file_size(filename, mCache->getFileAPRPool()); 514 S32 filesize = LLAPRFile::size(filename, mCache->getLocalAPRFilePool());
513 if (filesize > mOffset) 515 if (filesize > mOffset)
514 { 516 {
515 S32 datasize = TEXTURE_CACHE_ENTRY_SIZE + filesize; 517 S32 datasize = TEXTURE_CACHE_ENTRY_SIZE + filesize;
@@ -568,7 +570,7 @@ bool LLTextureCacheRemoteWorker::doRead()
568 } 570 }
569#else 571#else
570 std::string filename = mCache->getTextureFileName(mID); 572 std::string filename = mCache->getTextureFileName(mID);
571 S32 filesize = ll_apr_file_size(filename, mCache->getFileAPRPool()); 573 S32 filesize = LLAPRFile::size(filename, mCache->getLocalAPRFilePool());
572 S32 bytes_read = 0; 574 S32 bytes_read = 0;
573 if (filesize > mOffset) 575 if (filesize > mOffset)
574 { 576 {
@@ -588,9 +590,10 @@ bool LLTextureCacheRemoteWorker::doRead()
588 delete[] mReadData; 590 delete[] mReadData;
589 } 591 }
590 mReadData = data; 592 mReadData = data;
591 bytes_read = ll_apr_file_read_ex(filename, mCache->getFileAPRPool(), 593 bytes_read = LLAPRFile::readEx(filename,
592 mReadData + data_offset, 594 mReadData + data_offset,
593 file_offset, file_size); 595 file_offset, file_size,
596 mCache->getLocalAPRFilePool());
594 if (bytes_read != file_size) 597 if (bytes_read != file_size)
595 { 598 {
596// llwarns << "LLTextureCacheWorker: " << mID 599// llwarns << "LLTextureCacheWorker: " << mID
@@ -693,8 +696,7 @@ bool LLTextureCacheRemoteWorker::doWrite()
693 llassert_always(mOffset < TEXTURE_CACHE_ENTRY_SIZE); 696 llassert_always(mOffset < TEXTURE_CACHE_ENTRY_SIZE);
694 S32 offset = idx * TEXTURE_CACHE_ENTRY_SIZE + mOffset; 697 S32 offset = idx * TEXTURE_CACHE_ENTRY_SIZE + mOffset;
695 S32 size = TEXTURE_CACHE_ENTRY_SIZE - mOffset; 698 S32 size = TEXTURE_CACHE_ENTRY_SIZE - mOffset;
696 S32 bytes_written = ll_apr_file_write_ex(mCache->mHeaderDataFileName, mCache->getFileAPRPool(), 699 S32 bytes_written = LLAPRFile::writeEx(mCache->mHeaderDataFileName, mWriteData, offset, size, mCache->getLocalAPRFilePool());
697 mWriteData, offset, size);
698 700
699 if (bytes_written <= 0) 701 if (bytes_written <= 0)
700 { 702 {
@@ -769,9 +771,11 @@ bool LLTextureCacheRemoteWorker::doWrite()
769 if (file_size > 0 && mCache->appendToTextureEntryList(mID, file_size)) 771 if (file_size > 0 && mCache->appendToTextureEntryList(mID, file_size))
770 { 772 {
771 std::string filename = mCache->getTextureFileName(mID); 773 std::string filename = mCache->getTextureFileName(mID);
772 bytes_written = ll_apr_file_write_ex(filename, mCache->getFileAPRPool(), 774
775 bytes_written = LLAPRFile::writeEx(filename,
773 mWriteData + data_offset, 776 mWriteData + data_offset,
774 file_offset, file_size); 777 file_offset, file_size,
778 mCache->getLocalAPRFilePool());
775 if (bytes_written <= 0) 779 if (bytes_written <= 0)
776 { 780 {
777 mDataSize = -1; // failed 781 mDataSize = -1; // failed
@@ -792,13 +796,14 @@ bool LLTextureCacheRemoteWorker::doWrite()
792//virtual 796//virtual
793bool LLTextureCacheWorker::doWork(S32 param) 797bool LLTextureCacheWorker::doWork(S32 param)
794{ 798{
799// *TODO reenable disabled apr_pool usage disabled due to maint-render-9 merge breakage -brad
795 //allocate a new local apr_pool 800 //allocate a new local apr_pool
796 LLAPRPool pool ; 801// LLAPRPool pool ;
797 802
798 //save the current mFileAPRPool to avoid breaking anything. 803 //save the current mFileAPRPool to avoid breaking anything.
799 apr_pool_t* old_pool = mCache->getFileAPRPool() ; 804// apr_pool_t* old_pool = mCache->getFileAPRPool() ;
800 //make mFileAPRPool to point to the local one 805 //make mFileAPRPool to point to the local one
801 mCache->setFileAPRPool(pool.getAPRPool()) ; 806// mCache->setFileAPRPool(pool.getAPRPool()) ;
802 807
803 bool res = false; 808 bool res = false;
804 if (param == 0) // read 809 if (param == 0) // read
@@ -815,7 +820,7 @@ bool LLTextureCacheWorker::doWork(S32 param)
815 } 820 }
816 821
817 //set mFileAPRPool back, the local one will be released automatically. 822 //set mFileAPRPool back, the local one will be released automatically.
818 mCache->setFileAPRPool(old_pool) ; 823// mCache->setFileAPRPool(old_pool) ;
819 824
820 return res; 825 return res;
821} 826}
@@ -879,22 +884,20 @@ void LLTextureCacheWorker::endWork(S32 param, bool aborted)
879 884
880LLTextureCache::LLTextureCache(bool threaded) 885LLTextureCache::LLTextureCache(bool threaded)
881 : LLWorkerThread("TextureCache", threaded), 886 : LLWorkerThread("TextureCache", threaded),
882 mWorkersMutex(getAPRPool()), 887 mWorkersMutex(NULL),
883 mHeaderMutex(getAPRPool()), 888 mHeaderMutex(NULL),
884 mListMutex(getAPRPool()), 889 mListMutex(NULL),
885 mFileAPRPool(NULL),
886 mReadOnly(FALSE), 890 mReadOnly(FALSE),
887 mTexturesSizeTotal(0), 891 mTexturesSizeTotal(0),
888 mDoPurge(FALSE) 892 mDoPurge(FALSE)
889{ 893{
890 apr_pool_create(&mFileAPRPool, NULL);
891} 894}
892 895
893LLTextureCache::~LLTextureCache() 896LLTextureCache::~LLTextureCache()
894{ 897{
895 purgeTextureFilesTimeSliced(TRUE); // force-flush all pending file deletes 898 purgeTextureFilesTimeSliced(TRUE); // force-flush all pending file deletes
896 899
897 apr_pool_destroy(mFileAPRPool); 900 // apr_pool_destroy(mFileAPRPool);
898} 901}
899 902
900////////////////////////////////////////////////////////////////////////////// 903//////////////////////////////////////////////////////////////////////////////
@@ -970,8 +973,10 @@ bool LLTextureCache::appendToTextureEntryList(const LLUUID& id, S32 bodysize)
970 { 973 {
971 llassert_always(bodysize > 0); 974 llassert_always(bodysize > 0);
972 Entry* entry = new Entry(id, bodysize, time(NULL)); 975 Entry* entry = new Entry(id, bodysize, time(NULL));
973 ll_apr_file_write_ex(mTexturesDirEntriesFileName, getFileAPRPool(), 976
974 (U8*)entry, -1, 1*sizeof(Entry)); 977 LLAPRFile::writeEx(mTexturesDirEntriesFileName,
978 (U8*)entry, -1, 1*sizeof(Entry),
979 getLocalAPRFilePool());
975 delete entry; 980 delete entry;
976 if (iter != mTexturesSizeMap.end()) 981 if (iter != mTexturesSizeMap.end())
977 { 982 {
@@ -1019,8 +1024,8 @@ void LLTextureCache::purgeCache(ELLPath location)
1019 { 1024 {
1020 setDirNames(location); 1025 setDirNames(location);
1021 1026
1022 ll_apr_file_remove(mHeaderEntriesFileName, NULL); 1027 LLAPRFile::remove(mHeaderEntriesFileName, getLocalAPRFilePool());
1023 ll_apr_file_remove(mHeaderDataFileName, NULL); 1028 LLAPRFile::remove(mHeaderDataFileName, getLocalAPRFilePool());
1024 } 1029 }
1025 purgeAllTextures(true); 1030 purgeAllTextures(true);
1026} 1031}
@@ -1082,15 +1087,16 @@ struct lru_data
1082}; 1087};
1083 1088
1084// Called from either the main thread or the worker thread 1089// Called from either the main thread or the worker thread
1085void LLTextureCache::readHeaderCache(apr_pool_t* poolp) 1090void LLTextureCache::readHeaderCache()
1086{ 1091{
1087 LLMutexLock lock(&mHeaderMutex); 1092 LLMutexLock lock(&mHeaderMutex);
1088 mHeaderEntriesInfo.mVersion = 0.f; 1093 mHeaderEntriesInfo.mVersion = 0.f;
1089 mHeaderEntriesInfo.mEntries = 0; 1094 mHeaderEntriesInfo.mEntries = 0;
1090 if (ll_apr_file_exists(mHeaderEntriesFileName, poolp)) 1095 if (LLAPRFile::isExist(mHeaderEntriesFileName, getLocalAPRFilePool()))
1091 { 1096 {
1092 ll_apr_file_read_ex(mHeaderEntriesFileName, poolp, 1097 LLAPRFile::readEx(mHeaderEntriesFileName,
1093 (U8*)&mHeaderEntriesInfo, 0, sizeof(EntriesInfo)); 1098 (U8*)&mHeaderEntriesInfo, 0, sizeof(EntriesInfo),
1099 getLocalAPRFilePool());
1094 } 1100 }
1095 if (mHeaderEntriesInfo.mVersion != sHeaderCacheVersion) 1101 if (mHeaderEntriesInfo.mVersion != sHeaderCacheVersion)
1096 { 1102 {
@@ -1098,8 +1104,10 @@ void LLTextureCache::readHeaderCache(apr_pool_t* poolp)
1098 { 1104 {
1099 // Info with 0 entries 1105 // Info with 0 entries
1100 mHeaderEntriesInfo.mVersion = sHeaderCacheVersion; 1106 mHeaderEntriesInfo.mVersion = sHeaderCacheVersion;
1101 ll_apr_file_write_ex(mHeaderEntriesFileName, poolp, 1107
1102 (U8*)&mHeaderEntriesInfo, 0, sizeof(EntriesInfo)); 1108 LLAPRFile::writeEx(mHeaderEntriesFileName,
1109 (U8*)&mHeaderEntriesInfo, 0, sizeof(EntriesInfo),
1110 getLocalAPRFilePool());
1103 } 1111 }
1104 } 1112 }
1105 else 1113 else
@@ -1108,8 +1116,11 @@ void LLTextureCache::readHeaderCache(apr_pool_t* poolp)
1108 if (num_entries) 1116 if (num_entries)
1109 { 1117 {
1110 Entry* entries = new Entry[num_entries]; 1118 Entry* entries = new Entry[num_entries];
1111 ll_apr_file_read_ex(mHeaderEntriesFileName, poolp, 1119 {
1112 (U8*)entries, sizeof(EntriesInfo), num_entries*sizeof(Entry)); 1120 LLAPRFile::readEx(mHeaderEntriesFileName,
1121 (U8*)entries, sizeof(EntriesInfo), num_entries*sizeof(Entry),
1122 getLocalAPRFilePool());
1123 }
1113 typedef std::set<lru_data*, lru_data::Compare> lru_set_t; 1124 typedef std::set<lru_data*, lru_data::Compare> lru_set_t;
1114 lru_set_t lru; 1125 lru_set_t lru;
1115 for (S32 i=0; i<num_entries; i++) 1126 for (S32 i=0; i<num_entries; i++)
@@ -1154,7 +1165,7 @@ void LLTextureCache::purgeAllTextures(bool purge_directories)
1154 LLFile::rmdir(dirname); 1165 LLFile::rmdir(dirname);
1155 } 1166 }
1156 } 1167 }
1157 ll_apr_file_remove(mTexturesDirEntriesFileName, NULL); 1168 LLAPRFile::remove(mTexturesDirEntriesFileName, getLocalAPRFilePool());
1158 if (purge_directories) 1169 if (purge_directories)
1159 { 1170 {
1160 LLFile::rmdir(mTexturesDirName); 1171 LLFile::rmdir(mTexturesDirName);
@@ -1175,7 +1186,7 @@ void LLTextureCache::purgeTextures(bool validate)
1175 1186
1176 LLMutexLock lock(&mHeaderMutex); 1187 LLMutexLock lock(&mHeaderMutex);
1177 1188
1178 S32 filesize = ll_apr_file_size(mTexturesDirEntriesFileName, NULL); 1189 S32 filesize = LLAPRFile::size(mTexturesDirEntriesFileName, getLocalAPRFilePool());
1179 S32 num_entries = filesize / sizeof(Entry); 1190 S32 num_entries = filesize / sizeof(Entry);
1180 if (num_entries * (S32)sizeof(Entry) != filesize) 1191 if (num_entries * (S32)sizeof(Entry) != filesize)
1181 { 1192 {
@@ -1189,8 +1200,9 @@ void LLTextureCache::purgeTextures(bool validate)
1189 } 1200 }
1190 1201
1191 Entry* entries = new Entry[num_entries]; 1202 Entry* entries = new Entry[num_entries];
1192 S32 bytes_read = ll_apr_file_read_ex(mTexturesDirEntriesFileName, NULL, 1203 S32 bytes_read = LLAPRFile::readEx(mTexturesDirEntriesFileName,
1193 (U8*)entries, 0, num_entries*sizeof(Entry)); 1204 (U8*)entries, 0, num_entries*sizeof(Entry),
1205 getLocalAPRFilePool());
1194 if (bytes_read != filesize) 1206 if (bytes_read != filesize)
1195 { 1207 {
1196 LL_WARNS("TextureCache") << "Bad cache file (2): " << mTexturesDirEntriesFileName << " Purging." << LL_ENDL; 1208 LL_WARNS("TextureCache") << "Bad cache file (2): " << mTexturesDirEntriesFileName << " Purging." << LL_ENDL;
@@ -1249,7 +1261,7 @@ void LLTextureCache::purgeTextures(bool validate)
1249 if (uuididx == validate_idx) 1261 if (uuididx == validate_idx)
1250 { 1262 {
1251 LL_DEBUGS("TextureCache") << "Validating: " << filename << "Size: " << entries[idx].mSize << LL_ENDL; 1263 LL_DEBUGS("TextureCache") << "Validating: " << filename << "Size: " << entries[idx].mSize << LL_ENDL;
1252 S32 bodysize = ll_apr_file_size(filename, NULL); 1264 S32 bodysize = LLAPRFile::size(filename, getLocalAPRFilePool());
1253 if (bodysize != entries[idx].mSize) 1265 if (bodysize != entries[idx].mSize)
1254 { 1266 {
1255 LL_WARNS("TextureCache") << "TEXTURE CACHE BODY HAS BAD SIZE: " << bodysize << " != " << entries[idx].mSize 1267 LL_WARNS("TextureCache") << "TEXTURE CACHE BODY HAS BAD SIZE: " << bodysize << " != " << entries[idx].mSize
@@ -1283,9 +1295,10 @@ void LLTextureCache::purgeTextures(bool validate)
1283 << num_entries << " (" << num_entries*sizeof(Entry)/1024 << "KB)" 1295 << num_entries << " (" << num_entries*sizeof(Entry)/1024 << "KB)"
1284 << LL_ENDL; 1296 << LL_ENDL;
1285 1297
1286 ll_apr_file_remove(mTexturesDirEntriesFileName, NULL); 1298 LLAPRFile::remove(mTexturesDirEntriesFileName, getLocalAPRFilePool());
1287 ll_apr_file_write_ex(mTexturesDirEntriesFileName, NULL, 1299 LLAPRFile::writeEx(mTexturesDirEntriesFileName,
1288 (U8*)&entries[0], 0, num_entries*sizeof(Entry)); 1300 (U8*)&entries[0], 0, num_entries*sizeof(Entry),
1301 getLocalAPRFilePool());
1289 1302
1290 mTexturesSizeTotal = 0; 1303 mTexturesSizeTotal = 0;
1291 mTexturesSizeMap.clear(); 1304 mTexturesSizeMap.clear();
@@ -1332,7 +1345,7 @@ void LLTextureCache::purgeTextureFilesTimeSliced(BOOL force_all)
1332 for (LLTextureCache::filename_list_t::iterator iter = mFilesToDelete.begin(); iter!=mFilesToDelete.end(); ) 1345 for (LLTextureCache::filename_list_t::iterator iter = mFilesToDelete.begin(); iter!=mFilesToDelete.end(); )
1333 { 1346 {
1334 LLTextureCache::filename_list_t::iterator iter2 = iter++; 1347 LLTextureCache::filename_list_t::iterator iter2 = iter++;
1335 ll_apr_file_remove(*iter2, NULL); 1348 LLAPRFile::remove(*iter2, NULL);
1336 mFilesToDelete.erase(iter2); 1349 mFilesToDelete.erase(iter2);
1337 howmany++; 1350 howmany++;
1338 1351
@@ -1402,8 +1415,9 @@ S32 LLTextureCache::getHeaderCacheEntry(const LLUUID& id, bool touch, S32* image
1402 idx = mHeaderEntriesInfo.mEntries++; 1415 idx = mHeaderEntriesInfo.mEntries++;
1403 mHeaderIDMap[id] = idx; 1416 mHeaderIDMap[id] = idx;
1404 // Update Info 1417 // Update Info
1405 ll_apr_file_write_ex(mHeaderEntriesFileName, getFileAPRPool(), 1418 LLAPRFile::writeEx(mHeaderEntriesFileName,
1406 (U8*)&mHeaderEntriesInfo, 0, sizeof(EntriesInfo)); 1419 (U8*)&mHeaderEntriesInfo, 0, sizeof(EntriesInfo),
1420 getLocalAPRFilePool());
1407 } 1421 }
1408 else if (!mLRU.empty()) 1422 else if (!mLRU.empty())
1409 { 1423 {
@@ -1428,8 +1442,9 @@ S32 LLTextureCache::getHeaderCacheEntry(const LLUUID& id, bool touch, S32* image
1428 llassert_always(imagesize && *imagesize > 0); 1442 llassert_always(imagesize && *imagesize > 0);
1429 Entry* entry = new Entry(id, *imagesize, time(NULL)); 1443 Entry* entry = new Entry(id, *imagesize, time(NULL));
1430 S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); 1444 S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry);
1431 ll_apr_file_write_ex(mHeaderEntriesFileName, getFileAPRPool(), 1445 LLAPRFile::writeEx(mHeaderEntriesFileName,
1432 (U8*)entry, offset, sizeof(Entry)); 1446 (U8*)entry, offset, sizeof(Entry),
1447 getLocalAPRFilePool());
1433 delete entry; 1448 delete entry;
1434 } 1449 }
1435 else if (imagesize) 1450 else if (imagesize)
@@ -1437,15 +1452,17 @@ S32 LLTextureCache::getHeaderCacheEntry(const LLUUID& id, bool touch, S32* image
1437 // Get the image size 1452 // Get the image size
1438 Entry entry; 1453 Entry entry;
1439 S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); 1454 S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry);
1440 ll_apr_file_read_ex(mHeaderEntriesFileName, getFileAPRPool(), 1455
1441 (U8*)&entry, offset, sizeof(Entry)); 1456 LLAPRFile::readEx(mHeaderEntriesFileName,
1457 (U8*)&entry, offset, sizeof(Entry),
1458 getLocalAPRFilePool());
1442 *imagesize = entry.mSize; 1459 *imagesize = entry.mSize;
1443 } 1460 }
1444 } 1461 }
1445 } 1462 }
1446 if (retry) 1463 if (retry)
1447 { 1464 {
1448 readHeaderCache(getFileAPRPool()); // updates the lru 1465 readHeaderCache(); // updates the lru
1449 llassert_always(!mLRU.empty() || mHeaderEntriesInfo.mEntries < sCacheMaxEntries); 1466 llassert_always(!mLRU.empty() || mHeaderEntriesInfo.mEntries < sCacheMaxEntries);
1450 idx = getHeaderCacheEntry(id, touch, imagesize); // assert above ensures no inf. recursion 1467 idx = getHeaderCacheEntry(id, touch, imagesize); // assert above ensures no inf. recursion
1451 } 1468 }
@@ -1519,7 +1536,7 @@ LLTextureCache::handle_t LLTextureCache::writeToCache(const LLUUID& id, U32 prio
1519 { 1536 {
1520 // NOTE: This may cause an occasional hiccup, 1537 // NOTE: This may cause an occasional hiccup,
1521 // but it really needs to be done on the control thread 1538 // but it really needs to be done on the control thread
1522 // (i.e. here) 1539 // (i.e. here)
1523 purgeTextures(false); 1540 purgeTextures(false);
1524 mDoPurge = FALSE; 1541 mDoPurge = FALSE;
1525 } 1542 }
@@ -1589,8 +1606,10 @@ bool LLTextureCache::removeHeaderCacheEntry(const LLUUID& id)
1589 { 1606 {
1590 Entry* entry = new Entry(id, -1, time(NULL)); 1607 Entry* entry = new Entry(id, -1, time(NULL));
1591 S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry); 1608 S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry);
1592 ll_apr_file_write_ex(mHeaderEntriesFileName, NULL, 1609
1593 (U8*)entry, offset, sizeof(Entry)); 1610 LLAPRFile::writeEx(mHeaderEntriesFileName,
1611 (U8*)entry, offset, sizeof(Entry),
1612 getLocalAPRFilePool());
1594 delete entry; 1613 delete entry;
1595 mLRU[idx] = id; 1614 mLRU[idx] = id;
1596 mHeaderIDMap.erase(id); 1615 mHeaderIDMap.erase(id);
@@ -1607,7 +1626,7 @@ void LLTextureCache::removeFromCache(const LLUUID& id)
1607 if (!mReadOnly) 1626 if (!mReadOnly)
1608 { 1627 {
1609 removeHeaderCacheEntry(id); 1628 removeHeaderCacheEntry(id);
1610 ll_apr_file_remove(getTextureFileName(id), NULL); 1629 LLAPRFile::remove(getTextureFileName(id), getLocalAPRFilePool());
1611 } 1630 }
1612} 1631}
1613 1632