Export of internal Abseil changes
-- 0b924fe4e9871200792617329d32beb8356daa9b by Derek Mauro <dmauro@google.com>: Use less threads in the GetTID() test to avoid test timeouts PiperOrigin-RevId: 292566826 -- 0b519c4fd48d61b7c4ea94ed6a6be6e981b9c51a by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 292563778 -- 3204f6e07bcc2b5e9098d45f1a20998f25ab808e by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 292550551 -- 09fbbe73833478d3f26f3e33c8291b991fd3be51 by Derek Mauro <dmauro@google.com>: Add a debug bounds-check to absl::string_view::operator[] string_view accesses that are out-of-bounds are undefined behavior: https://en.cppreference.com/w/cpp/string/basic_string_view/operator_at This change causes code to abort in debug mode, indicating a bug and possibly a security issue like a buffer overflow. Code broken by this change should be investigated. PiperOrigin-RevId: 292544735 -- bf2c19cb45682628f963d4067c0cd6deed7e656d by Derek Mauro <dmauro@google.com>: Add debug assertions to absl::string_view::front and absl::string_view::back Calling front() or back() on an empty string_view is undefined behavior. This assertion is to help catch broken code. https://en.cppreference.com/w/cpp/string/basic_string_view/front https://en.cppreference.com/w/cpp/string/basic_string_view/back PiperOrigin-RevId: 292453255 -- 47f573679b322f8c0fd2cb037cc87e7bc822ac6b by Xiaoyi Zhang <zhangxy@google.com>: Release functional/CMakeList.txt. PiperOrigin-RevId: 292417025 GitOrigin-RevId: 0b924fe4e9871200792617329d32beb8356daa9b Change-Id: Ie6980fb1ac351d72a2ce4468f25bd31db396f88a
This commit is contained in:
		
							parent
							
								
									c512f118dd
								
							
						
					
					
						commit
						0f86336b69
					
				
					 8 changed files with 151 additions and 78 deletions
				
			
		|  | @ -282,7 +282,9 @@ class string_view { | |||
|   //
 | ||||
|   // Returns the ith element of the `string_view` using the array operator.
 | ||||
|   // Note that this operator does not perform any bounds checking.
 | ||||
|   constexpr const_reference operator[](size_type i) const { return ptr_[i]; } | ||||
|   constexpr const_reference operator[](size_type i) const { | ||||
|     return ABSL_ASSERT(i < size()), ptr_[i]; | ||||
|   } | ||||
| 
 | ||||
|   // string_view::at()
 | ||||
|   //
 | ||||
|  | @ -300,12 +302,16 @@ class string_view { | |||
|   // string_view::front()
 | ||||
|   //
 | ||||
|   // Returns the first element of a `string_view`.
 | ||||
|   constexpr const_reference front() const { return ptr_[0]; } | ||||
|   constexpr const_reference front() const { | ||||
|     return ABSL_ASSERT(!empty()), ptr_[0]; | ||||
|   } | ||||
| 
 | ||||
|   // string_view::back()
 | ||||
|   //
 | ||||
|   // Returns the last element of a `string_view`.
 | ||||
|   constexpr const_reference back() const { return ptr_[size() - 1]; } | ||||
|   constexpr const_reference back() const { | ||||
|     return ABSL_ASSERT(!empty()), ptr_[size() - 1]; | ||||
|   } | ||||
| 
 | ||||
|   // string_view::data()
 | ||||
|   //
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue