1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-10-24 23:56:38 +00:00
Commit graph

33 commits

Author SHA1 Message Date
elsid
2e64155c0f
Use signed type for left record and files size in ESM3 reader context
Otherwise reading some of the records like ESM::CellRef without a subrecord
after could lead to underflow of ESM_Context::leftRec which makes
ESM::ESMReader::hasMoreSubs to return true and load hangs for a while trying to
read the same subrecord many times.

Fix ESM::Variant tests since it's now required to have a record for any ESM
data. Add 16 (size of record header) to all expected data sizes.
2023-02-11 16:09:14 +01:00
elsid
2bbed8cc06
Fix gcc warning: array subscript 5 is outside array bounds of ‘const char [5]’
In function ‘bool ESM::operator==(const FixedString<capacity>&, const T* const&) [with long unsigned int capacity = 5; T = char; <template-parameter-1-3> = void]’,
    inlined from ‘testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = ESM::FixedString<5>; T2 = const char*]’ at /home/elsid/dev/googletest/build/gcc/release/install/include/gtest/gtest.h:1358:11,
    inlined from ‘static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, const T2&) [with T1 = ESM::FixedString<5>; T2 = const char*; typename std::enable_if<((! std::is_integral<_Tp>::value) || (! std::is_pointer<_Dp>::value))>::type* <anonymous> = 0]’ at /home/elsid/dev/googletest/build/gcc/release/install/include/gtest/gtest.h:1377:64,
    inlined from ‘virtual void {anonymous}::EsmFixedString_equality_operator_for_not_convertible_to_uint32_with_const_char_pointer_Test::TestBody()’ at apps/openmw_test_suite/esm/test_fixed_string.cpp:165:9:
components/esm/esmcommon.hpp:134:19: warning: array subscript 5 is outside array bounds of ‘const char [5]’ [-Warray-bounds]
  134 |         return rhs[capacity] == '\0';
      |                ~~~^
apps/openmw_test_suite/esm/test_fixed_string.cpp: In member function ‘virtual void {anonymous}::EsmFixedString_equality_operator_for_not_convertible_to_uint32_with_const_char_pointer_Test::TestBody()’:
apps/openmw_test_suite/esm/test_fixed_string.cpp:164:20: note: at offset 5 into object ‘other’ of size 5
  164 |         const char other[5] = { 'a', 'b', 'c', 'd', '\0' };
      |                    ^~~~~
2023-01-06 22:09:07 +01:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
Project579
e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2022-09-11 14:41:15 +02:00
elsid
da0a1ac9ba
Do compile time checks in compile time instead of tests 2022-08-03 21:47:00 +02:00
Evil Eye
61ea678a96 Implement ignored records 2022-04-16 16:28:39 +02:00
elsid
3305b400dc
Use ESM::NAME instead of const char* and std::string as argument type 2022-02-14 23:40:40 +01:00
elsid
45db56b382
Rework fixed string
* Avoid inheritance.
* Define equality operators out of the class definition.
* Replace toString with toStringView where it doesn't make sense to create a string.
2022-01-28 18:39:09 +01:00
elsid
18d3102148
Do not use union to access FIXED_STRING<4> as int
https://en.cppreference.com/w/cpp/language/union:
> It's undefined behavior to read from the member of the union that wasn't most recently written.
2021-10-17 17:16:21 +02:00
cc9cii
4b3de46bfa Use enums in place of magic numbers. Ensure Creature and NPC cell references are always saved as persistent. 2021-07-06 12:37:02 +10:00
elsid
b806445a36
Use existing min implementation 2021-05-09 13:58:05 +02:00
jvoisin
8a56ba6aaa Fix compilation 2021-05-07 13:58:30 +02:00
elsid
fbeccc2908 Apply 1 suggestion(s) to 1 file(s) 2021-05-07 09:28:47 +00:00
jvoisin
e97e4d07dd Teensy optimisation for esmtool
- Use an unordered_set instead of a list to
  keep track of skipped records.
- Reduce the number of conditions when parsing 4-letters
  records by using a switch-case instead of cascading conditions.
- Add a const
2021-05-06 22:41:20 +02:00
Andrei Kortunov
822764d0fa Rework fixed strings handling 2020-10-05 21:52:22 +04:00
Bret Curtis
8c2f3ff007 clean up code; purge const_cast 2020-04-19 16:31:54 +02:00
Azdul
7940317e42 Make sure that proper operator function is used for char[N] argument 2019-02-03 09:32:32 +01:00
Roman Proskuryakov
d5dfa89060 Rewrite NAME_T into FIXED_STRING. 2016-05-07 23:27:33 +03:00
Nikolay Kasyanov
3e45e9a48a Remove no longer required strnlen wrapper
It was used for MinGW & OS X < 10.7. Minimal OS X version was bumped to
10.7 and MinGW support was recently dropped (see
1eaa64c49c).
2015-03-18 23:37:54 +02:00
scrawl
9d3f0b2ed5 Remove some unused code, include cleanup 2015-01-27 23:12:13 +01:00
Nathan Aclander
33ce03dfc5 Should be compared against uint only 2015-01-24 17:17:05 -08:00
scrawl
c883a73d30 Several warning fixes 2015-01-23 15:34:47 +01:00
Bret Curtis
ab224f93c9 remove our stdint.h version that uses boost and force usage of system stdint.h 2014-03-05 17:08:58 +01:00
Marc Zinnschlag
16570ce87b moved header record struct to separate file 2013-03-12 09:16:03 +01:00
Marc Zinnschlag
731ac6a160 removed redundant copy of Header::Data 2013-03-12 08:30:51 +01:00
Marc Zinnschlag
9e68a420ae restructuring tes3 record structs 2013-03-12 08:15:20 +01:00
Marc Zinnschlag
b085c4f749 removing more leftovers 2013-03-11 16:53:42 +01:00
Marc Zinnschlag
2e1a1fd11a removing some remains of the removed GMST fixing feature 2013-03-11 16:30:47 +01:00
Marc Zinnschlag
64d517dd79 removed unused file type information from esm component 2013-03-11 14:42:49 +01:00
Mark Siewert
2175f13b67 - Add tracking for dependencies between plugins.
- Add reference number mangling required for moving references around.
2012-11-17 00:21:51 +01:00
Mark Siewert
42eefaf36f - Add support for loading references from multiple esm/esp files. Full reference ID mangling coming soon (currently, moved references are simply cloned).
- Reference loader now (partially) supports MVRF tag.
2012-11-10 21:43:41 +01:00
greye
3494e17b7c wipe record superclass 2012-10-01 00:51:54 +04:00
greye
1339787863 remove underscores from filenames in esm 2012-09-23 23:12:10 +04:00
Renamed from components/esm/esm_common.hpp (Browse further)