فهرست منبع

fix warnings with -Wstringop-truncation

Daniele Bartolini 7 سال پیش
والد
کامیت
59ed8daeb7
4فایلهای تغییر یافته به همراه7 افزوده شده و 5 حذف شده
  1. 1 1
      src/core/strings/dynamic_string.h
  2. 1 1
      src/device/device.cpp
  3. 1 1
      src/device/main_linux.cpp
  4. 4 2
      tools-imgui/level_editor.cpp

+ 1 - 1
src/core/strings/dynamic_string.h

@@ -73,7 +73,7 @@ inline DynamicString::DynamicString(Allocator& a)
 inline void DynamicString::set(const char* str, u32 len)
 {
 	array::resize(_data, len);
-	strncpy(array::begin(_data), str, len);
+	memcpy(array::begin(_data), str, len);
 }
 
 /// Appends the string @a b to @a a.

+ 1 - 1
src/device/device.cpp

@@ -84,7 +84,7 @@ struct BgfxCallback : public bgfx::CallbackI
 	virtual void traceVargs(const char* /*_filePath*/, u16 /*_line*/, const char* _format, va_list _argList)
 	{
 		char buf[2048];
-		strncpy(buf, _format, sizeof(buf));
+		strncpy(buf, _format, sizeof(buf)-1);
 		buf[strlen32(buf)-1] = '\0'; // Remove trailing newline
 		logiv(DEVICE, buf, _argList);
 	}

+ 1 - 1
src/device/main_linux.cpp

@@ -658,7 +658,7 @@ struct WindowX11 : public Window
 		memset(buf, 0, sizeof(buf));
 		char* name;
 		XFetchName(s_ldvc._x11_display, _x11_window, &name);
-		strncpy(buf, name, sizeof(buf));
+		strncpy(buf, name, sizeof(buf)-1);
 		XFree(name);
 		return buf;
 	}

+ 4 - 2
tools-imgui/level_editor.cpp

@@ -655,8 +655,8 @@ struct SpriteAnimator
 			const char* sprite = _entities[_cur_entity];
 			u32 sprite_len = strlen(sprite);
 			char entity[1024];
-			strncpy(entity, sprite, strlen(sprite));
-			entity[sprite_len-7] = '\0';	// remove ".sprite"
+			strncpy(entity, sprite, sizeof(entity)-1);
+			entity[sprite_len-7] = '\0'; // remove ".sprite"
 
 			ResourceManager* resman = device()->_resource_manager;
 			_texture = (TextureResource*)resman->get(RESOURCE_TYPE_TEXTURE, StringId64(entity));
@@ -1037,6 +1037,8 @@ struct LevelEditor
 		}
 		ImGui::EndDock();
 
+		_sprite_importer.draw();
+
 		imgui_end_frame();
 	}