Index: trunk/src/core/library.cc
===================================================================
--- trunk/src/core/library.cc	(revision 432)
+++ trunk/src/core/library.cc	(revision 433)
@@ -62,5 +62,5 @@
 string_view library::get_name() const
 {
-    return string_view( m_name );
+    return string_view( m_name.c_str(), m_name.size() );
 }
 
@@ -71,8 +71,8 @@
         return true;
     }
-    NV_LOG_NOTICE( "library \"", string_view( m_name ), "\" : loading..." );
+    NV_LOG_NOTICE( "library \"", string_view( m_name.c_str(), m_name.size() ), "\" : loading..." );
 
 	std::string name = m_name;
-	string_view ext( NV_LIB_EXT );
+	std::string ext( NV_LIB_EXT );
 
 	if ( name.length() < ext.length() || name.substr( name.length() - ext.length(), ext.length() ) != ext )
@@ -85,8 +85,8 @@
     if ( m_handle == NULL )
     {
-		NV_LOG_NOTICE( "library \"", string_view( name ), "\" : failed to open!" );
+		NV_LOG_NOTICE( "library \"", string_view( m_name.c_str(), m_name.size() ), "\" : failed to open!" );
 		return false;
     }
-    NV_LOG_NOTICE( "library \"", string_view( name ), "\" : loaded." );
+    NV_LOG_NOTICE( "library \"", string_view( m_name.c_str(), m_name.size() ), "\" : loaded." );
 	return true;
 }
@@ -97,5 +97,5 @@
     if ( !result )
     {
-		NV_LOG_CRITICAL( "library \"", string_view( m_name ), "\" : can't find symbol \"", symbol, "\"" );
+		NV_LOG_CRITICAL( "library \"", string_view( m_name.c_str(), m_name.size() ), "\" : can't find symbol \"", symbol, "\"" );
 		NV_ABORT( "Library symbol load failed!" );
     }
@@ -117,5 +117,5 @@
     if ( ! NV_LIB_CLOSE( m_handle ) )
     {
-        NV_LOG_ERROR( "library \"", string_view( m_name ), "\" : can't close library!" );
+        NV_LOG_ERROR( "library \"", string_view( m_name.c_str(), m_name.size() ), "\" : can't close library!" );
     }
     m_handle = nullptr;
Index: trunk/src/engine/particle_engine.cc
===================================================================
--- trunk/src/engine/particle_engine.cc	(revision 432)
+++ trunk/src/engine/particle_engine.cc	(revision 433)
@@ -435,5 +435,5 @@
 					{
 						data.affector_count--;
-						NV_LOG_WARNING( "Bad data passed to ", sub_type, " affector in particle system!" );
+						NV_LOG_WARNING( "Bad data passed to ", string_view( sub_type.c_str(), sub_type.size() ), " affector in particle system!" );
 					}
 				}
@@ -441,5 +441,5 @@
 				{
 					data.affector_count--;
-					NV_LOG_WARNING( "Unknown affector type in particle system! (", sub_type, ")" );
+					NV_LOG_WARNING( "Unknown affector type in particle system! (", string_view( sub_type.c_str(), sub_type.size() ), ")" );
 				}
 			}
Index: trunk/src/engine/program_manager.cc
===================================================================
--- trunk/src/engine/program_manager.cc	(revision 432)
+++ trunk/src/engine/program_manager.cc	(revision 433)
@@ -37,5 +37,5 @@
 	}
 
-	nv::program program = m_context->get_device()->create_program( string_view( vsource ), string_view( fsource ) );
+	nv::program program = m_context->get_device()->create_program( string_view( vsource.c_str(), vsource.size() ), string_view( fsource.c_str(), fsource.size() ) );
 	return add( program );
 }
Index: trunk/src/engine/resource_system.cc
===================================================================
--- trunk/src/engine/resource_system.cc	(revision 432)
+++ trunk/src/engine/resource_system.cc	(revision 433)
@@ -12,5 +12,6 @@
 {
 	m_lua = a_lua_state;
-	lua::register_storage( m_lua, get_storage_name(), string_view( "register_" + get_resource_name().to_string() ) );
+	std::string delete_me = "register_" + std::string( get_resource_name().data(), get_resource_name().size() );
+	lua::register_storage( m_lua, get_storage_name(), string_view( delete_me.c_str(), delete_me.size() ) );
 }
 
Index: trunk/src/formats/md5_loader.cc
===================================================================
--- trunk/src/formats/md5_loader.cc	(revision 432)
+++ trunk/src/formats/md5_loader.cc	(revision 433)
@@ -155,5 +155,5 @@
 					sstream >> shader;
 					remove_quotes( shader );
-					maccess.set_name( make_name( shader ) );
+					maccess.set_name( make_name( shader.c_str() ) );
 					next_line( sstream );
 				}
Index: trunk/src/formats/obj_loader.cc
===================================================================
--- trunk/src/formats/obj_loader.cc	(revision 432)
+++ trunk/src/formats/obj_loader.cc	(revision 433)
@@ -328,5 +328,5 @@
 		data_channel_set* result = data_channel_set_creator::create_set( 1 );
 		data_channel_set_creator raccess( result );
-		raccess.set_name( make_name( reader->name ) );
+		raccess.set_name( make_name( reader->name.c_str() ) );
 		uint8* rdata = raccess.add_channel( m_descriptor, reader->size * 3 ).raw_data();
 
Index: trunk/src/gl/gl_device.cc
===================================================================
--- trunk/src/gl/gl_device.cc	(revision 432)
+++ trunk/src/gl/gl_device.cc	(revision 433)
@@ -19,7 +19,7 @@
 	m_shader_header  = "#version 120\n";
 	for ( auto& i : get_uniform_factory() ) 
-		m_shader_header += "uniform "+datatype_to_glsl_type( i.second->get_datatype() )+" "+ i.first.to_string() +";\n";
+		m_shader_header += "uniform "+datatype_to_glsl_type( i.second->get_datatype() )+" "+ std::string( i.first.data(), i.first.size() ) +";\n";
 	for ( auto& i : get_link_uniform_factory() ) 
-		m_shader_header += "uniform sampler2D "+i.first.to_string() +";\n";
+		m_shader_header += "uniform sampler2D "+std::string( i.first.data(), i.first.size() ) +";\n";
 }
 
@@ -212,5 +212,5 @@
 		for ( auto& i : *info->m_uniform_map )
 		{
-			auto j = lmap.find( i.first );
+			auto j = lmap.find( i.first.c_str() );
 			if ( j != lmap.end() )
 			{
@@ -218,5 +218,5 @@
 			}			
 
-			auto k = map.find( i.first );
+			auto k = map.find( i.first.c_str() );
 			if ( k != map.end() )
 			{
@@ -238,5 +238,5 @@
 		if ( fatal )
 		{
-			NV_LOG_CRITICAL( "gl_device : uniform '", string_view( name ), "' not found in program!" );
+			NV_LOG_CRITICAL( "gl_device : uniform '", string_view( name.c_str(), name.size() ), "' not found in program!" );
 			NV_ABORT( "gl_device : uniform not found!" );
 		}
@@ -257,5 +257,5 @@
 		if ( fatal )
 		{
-			NV_LOG_CRITICAL( "gl_device : attribute '", string_view( name ), "' not found in program!" );
+			NV_LOG_CRITICAL( "gl_device : attribute '", string_view( name.c_str(), name.size() ), "' not found in program!" );
 			NV_ABORT( "gl_device : attribute not found!" );
 		}
Index: trunk/src/gui/gui_environment.cc
===================================================================
--- trunk/src/gui/gui_environment.cc	(revision 432)
+++ trunk/src/gui/gui_environment.cc	(revision 433)
@@ -30,5 +30,5 @@
 }
 
-void nv::gui::environment::load_style( const std::string& filename )
+void nv::gui::environment::load_style( const string_view& filename )
 {
 	m_renderer->load_style( filename );
Index: trunk/src/gui/gui_gfx_renderer.cc
===================================================================
--- trunk/src/gui/gui_gfx_renderer.cc	(revision 432)
+++ trunk/src/gui/gui_gfx_renderer.cc	(revision 433)
@@ -187,10 +187,11 @@
 }
 
-nv::size_t gfx_renderer::load_font( const std::string& filename, nv::size_t size )
-{
-	std::string id_name( filename );
+nv::size_t gfx_renderer::load_font( const string_view& filename, nv::size_t size )
+{
+	std::string id_name( filename.data(), filename.size() );
 	char buffer[8]; size_t len = nv::sint32_to_buffer( sint32( size ), buffer );
 	id_name.append( std::string( buffer, len ) );
-	auto i = m_font_names.find( id_name );
+	string_view id( id_name.c_str(), id_name.size() );
+	auto i = m_font_names.find( id );
 	if ( i != m_font_names.end() )
 	{
@@ -198,13 +199,13 @@
 	}
 	size_t result = m_fonts.size();
-	texture_font* f = new texture_font( &m_atlas, filename.c_str(), static_cast<float>( size ) );
+	texture_font* f = new texture_font( &m_atlas, filename.data(), static_cast<float>( size ) );
 	f->load_glyphs( "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ " );
 	m_fonts.push_back( f );
 	m_reupload = true;
-	m_font_names[id_name] = result;
+	m_font_names[ id ] = result;
 	return result;
 }
 
-nv::size_t gfx_renderer::load_image( const std::string& filename )
+nv::size_t gfx_renderer::load_image( const string_view& filename )
 {
 	auto i = m_image_names.find( filename );
@@ -253,5 +254,5 @@
 		if ( m_style.get( e, "skin", selector, path ) )
 		{
-			size_t image_id = load_image( path );
+			size_t image_id = load_image( string_view( path.c_str(), path.size() ) );
 			const image_info* image = get_image( image_id );
 			if ( image )
@@ -318,5 +319,5 @@
 			if ( m_style.get( e, "text_color", selector, color ) && m_style.get( e, "text_font", selector, path ) && m_style.get( e, "text_size", selector, border ) )
 			{
-				size_t font_id = load_font( path, size_t( border ) );
+				size_t font_id = load_font( string_view( path.c_str(), path.size() ), size_t( border ) );
 				texture_font* font = get_font( font_id );
 				position p = abs.ul + position( 0, border );
Index: trunk/src/gui/gui_renderer.cc
===================================================================
--- trunk/src/gui/gui_renderer.cc	(revision 432)
+++ trunk/src/gui/gui_renderer.cc	(revision 433)
@@ -7,5 +7,5 @@
 #include "nv/gui/gui_renderer.hh"
 
-void nv::gui::renderer::load_style( const std::string& filename )
+void nv::gui::renderer::load_style( const string_view& filename )
 {
 	m_style.load_style( filename );
Index: trunk/src/gui/gui_style.cc
===================================================================
--- trunk/src/gui/gui_style.cc	(revision 432)
+++ trunk/src/gui/gui_style.cc	(revision 433)
@@ -16,5 +16,5 @@
 }
 
-void style::load_style( const std::string& filename )
+void style::load_style( const string_view& filename )
 {
 	m_lua.do_file( filename );
Index: trunk/src/lua/lua_function.cc
===================================================================
--- trunk/src/lua/lua_function.cc	(revision 432)
+++ trunk/src/lua/lua_function.cc	(revision 433)
@@ -21,5 +21,5 @@
 	{
 		lua_pop( L, 1 );
-		NV_LUA_ABORT( "function_base::function_base", "not a valid path - ", a_path.to_string() );
+		NV_LUA_ABORT( "function_base::function_base", "not a valid path - ", a_path.to_string().c_str() );
 	}
 
@@ -27,5 +27,5 @@
 	{
 		lua_pop( L, 1 );
-		NV_LUA_ABORT( "function_base::function_base", "not a valid function - ", a_path.to_string() );
+		NV_LUA_ABORT( "function_base::function_base", "not a valid function - ", a_path.to_string().c_str() );
 	}
 	m_ref = luaL_ref( L, LUA_REGISTRYINDEX );
Index: trunk/src/lua/lua_map_tile.cc
===================================================================
--- trunk/src/lua/lua_map_tile.cc	(revision 432)
+++ trunk/src/lua/lua_map_tile.cc	(revision 433)
@@ -55,5 +55,6 @@
 	nv::map_area* map_area = nv::lua::detail::to_map_area( L, 3 );
 	lua_settop( L, 2 );
-	std::string code = nv::trimmed( lua_tostring( L, 1 ) ).to_string();
+	nv::string_view lts = nv::trimmed( lua_tostring( L, 1 ) );
+	std::string code( lts.data(), lts.size() );
 	std::string chars( " \r\t" );
 	code.erase( nv::remove_if( code.begin(), code.end(),
Index: trunk/src/lua/lua_state.cc
===================================================================
--- trunk/src/lua/lua_state.cc	(revision 432)
+++ trunk/src/lua/lua_state.cc	(revision 433)
@@ -116,5 +116,5 @@
 	if ( !p.resolve( m_state, global ) )
 	{
-		NV_LOG_ERROR( "Lua error : not a valid path - ", p.to_string() );
+		NV_LOG_ERROR( "Lua error : not a valid path - ", p.to_string().c_str() );
 		return false;
 	}
@@ -123,5 +123,5 @@
 	{
 		lua_pop( m_state, 1 );
-		NV_LOG_ERROR( "Lua error : not a valid function - ", p.to_string() );
+		NV_LOG_ERROR( "Lua error : not a valid function - ", p.to_string().c_str() );
 		return false;
 	}
@@ -442,5 +442,5 @@
 	for ( int i = 0; i < top; ++i )
 	{
-		NV_LOG_DEBUG( "#", i+1, " - ", lua_typename(m_state, lua_type(m_state, i+1) ), " = ", nlua_typecontent(m_state, i+1) );
+		NV_LOG_DEBUG( "#", i+1, " - ", lua_typename(m_state, lua_type(m_state, i+1) ), " = ", nlua_typecontent(m_state, i+1).c_str() );
 	}
 }
