mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Internals: LowerBound: Use raw pointer typedefs, we never use iterator anywhere else in the codebase.
Demo: Typo. C98 fix.
This commit is contained in:
		
							
								
								
									
										26
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -1795,15 +1795,15 @@ ImU32 ImGui::GetColorU32(ImU32 col) | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| // std::lower_bound but without the bullshit | ||||
| static ImVector<ImGuiStorage::Pair>::iterator LowerBound(ImVector<ImGuiStorage::Pair>& data, ImGuiID key) | ||||
| static ImGuiStorage::Pair* LowerBound(ImVector<ImGuiStorage::Pair>& data, ImGuiID key) | ||||
| { | ||||
|     ImVector<ImGuiStorage::Pair>::iterator first = data.begin(); | ||||
|     ImVector<ImGuiStorage::Pair>::iterator last = data.end(); | ||||
|     ImGuiStorage::Pair* first = data.Data; | ||||
|     ImGuiStorage::Pair* last = data.Data + data.Size; | ||||
|     size_t count = (size_t)(last - first); | ||||
|     while (count > 0) | ||||
|     { | ||||
|         size_t count2 = count >> 1; | ||||
|         ImVector<ImGuiStorage::Pair>::iterator mid = first + count2; | ||||
|         ImGuiStorage::Pair* mid = first + count2; | ||||
|         if (mid->key < key) | ||||
|         { | ||||
|             first = ++mid; | ||||
| @@ -1836,7 +1836,7 @@ void ImGuiStorage::BuildSortByKey() | ||||
|  | ||||
| int ImGuiStorage::GetInt(ImGuiID key, int default_val) const | ||||
| { | ||||
|     ImVector<Pair>::iterator it = LowerBound(const_cast<ImVector<ImGuiStorage::Pair>&>(Data), key); | ||||
|     ImGuiStorage::Pair* it = LowerBound(const_cast<ImVector<ImGuiStorage::Pair>&>(Data), key); | ||||
|     if (it == Data.end() || it->key != key) | ||||
|         return default_val; | ||||
|     return it->val_i; | ||||
| @@ -1849,7 +1849,7 @@ bool ImGuiStorage::GetBool(ImGuiID key, bool default_val) const | ||||
|  | ||||
| float ImGuiStorage::GetFloat(ImGuiID key, float default_val) const | ||||
| { | ||||
|     ImVector<Pair>::iterator it = LowerBound(const_cast<ImVector<ImGuiStorage::Pair>&>(Data), key); | ||||
|     ImGuiStorage::Pair* it = LowerBound(const_cast<ImVector<ImGuiStorage::Pair>&>(Data), key); | ||||
|     if (it == Data.end() || it->key != key) | ||||
|         return default_val; | ||||
|     return it->val_f; | ||||
| @@ -1857,7 +1857,7 @@ float ImGuiStorage::GetFloat(ImGuiID key, float default_val) const | ||||
|  | ||||
| void* ImGuiStorage::GetVoidPtr(ImGuiID key) const | ||||
| { | ||||
|     ImVector<Pair>::iterator it = LowerBound(const_cast<ImVector<ImGuiStorage::Pair>&>(Data), key); | ||||
|     ImGuiStorage::Pair* it = LowerBound(const_cast<ImVector<ImGuiStorage::Pair>&>(Data), key); | ||||
|     if (it == Data.end() || it->key != key) | ||||
|         return NULL; | ||||
|     return it->val_p; | ||||
| @@ -1866,7 +1866,7 @@ void* ImGuiStorage::GetVoidPtr(ImGuiID key) const | ||||
| // References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. | ||||
| int* ImGuiStorage::GetIntRef(ImGuiID key, int default_val) | ||||
| { | ||||
|     ImVector<Pair>::iterator it = LowerBound(Data, key); | ||||
|     ImGuiStorage::Pair* it = LowerBound(Data, key); | ||||
|     if (it == Data.end() || it->key != key) | ||||
|         it = Data.insert(it, Pair(key, default_val)); | ||||
|     return &it->val_i; | ||||
| @@ -1879,7 +1879,7 @@ bool* ImGuiStorage::GetBoolRef(ImGuiID key, bool default_val) | ||||
|  | ||||
| float* ImGuiStorage::GetFloatRef(ImGuiID key, float default_val) | ||||
| { | ||||
|     ImVector<Pair>::iterator it = LowerBound(Data, key); | ||||
|     ImGuiStorage::Pair* it = LowerBound(Data, key); | ||||
|     if (it == Data.end() || it->key != key) | ||||
|         it = Data.insert(it, Pair(key, default_val)); | ||||
|     return &it->val_f; | ||||
| @@ -1887,7 +1887,7 @@ float* ImGuiStorage::GetFloatRef(ImGuiID key, float default_val) | ||||
|  | ||||
| void** ImGuiStorage::GetVoidPtrRef(ImGuiID key, void* default_val) | ||||
| { | ||||
|     ImVector<Pair>::iterator it = LowerBound(Data, key); | ||||
|     ImGuiStorage::Pair* it = LowerBound(Data, key); | ||||
|     if (it == Data.end() || it->key != key) | ||||
|         it = Data.insert(it, Pair(key, default_val)); | ||||
|     return &it->val_p; | ||||
| @@ -1896,7 +1896,7 @@ void** ImGuiStorage::GetVoidPtrRef(ImGuiID key, void* default_val) | ||||
| // FIXME-OPT: Need a way to reuse the result of lower_bound when doing GetInt()/SetInt() - not too bad because it only happens on explicit interaction (maximum one a frame) | ||||
| void ImGuiStorage::SetInt(ImGuiID key, int val) | ||||
| { | ||||
|     ImVector<Pair>::iterator it = LowerBound(Data, key); | ||||
|     ImGuiStorage::Pair* it = LowerBound(Data, key); | ||||
|     if (it == Data.end() || it->key != key) | ||||
|     { | ||||
|         Data.insert(it, Pair(key, val)); | ||||
| @@ -1912,7 +1912,7 @@ void ImGuiStorage::SetBool(ImGuiID key, bool val) | ||||
|  | ||||
| void ImGuiStorage::SetFloat(ImGuiID key, float val) | ||||
| { | ||||
|     ImVector<Pair>::iterator it = LowerBound(Data, key); | ||||
|     ImGuiStorage::Pair* it = LowerBound(Data, key); | ||||
|     if (it == Data.end() || it->key != key) | ||||
|     { | ||||
|         Data.insert(it, Pair(key, val)); | ||||
| @@ -1923,7 +1923,7 @@ void ImGuiStorage::SetFloat(ImGuiID key, float val) | ||||
|  | ||||
| void ImGuiStorage::SetVoidPtr(ImGuiID key, void* val) | ||||
| { | ||||
|     ImVector<Pair>::iterator it = LowerBound(Data, key); | ||||
|     ImGuiStorage::Pair* it = LowerBound(Data, key); | ||||
|     if (it == Data.end() || it->key != key) | ||||
|     { | ||||
|         Data.insert(it, Pair(key, val)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user