diff options
author | Jacek Antonelli | 2009-08-29 17:44:38 -0500 |
---|---|---|
committer | Jacek Antonelli | 2009-08-29 22:49:51 -0500 |
commit | 6a5aab98892df74f60743f5b789959c9593d6647 (patch) | |
tree | 62da18f8540879ed01e12eeb0ce49375474272e4 /linden/indra/newview/lltexturecache.cpp | |
parent | Merge branch 'mac-openal-url' into next (diff) | |
parent | Converted 1.23 XUI files to unix line endings. (diff) | |
download | meta-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.cpp | 139 |
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 | ||
175 | bool LLTextureCacheLocalFileWorker::doRead() | 176 | bool 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 |
793 | bool LLTextureCacheWorker::doWork(S32 param) | 797 | bool 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 | ||
880 | LLTextureCache::LLTextureCache(bool threaded) | 885 | LLTextureCache::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 | ||
893 | LLTextureCache::~LLTextureCache() | 896 | LLTextureCache::~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 |
1085 | void LLTextureCache::readHeaderCache(apr_pool_t* poolp) | 1090 | void 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 | ||