LuaJIT FFI is not inherently memory safe and there is no way to completely guard against the caller doing something that will trample over memory, but we can get pretty close. Biggest issue is that an empty table will stand-in for a ref struct with a null ref. So check for that in all the calls. In the calls that raise errors we now have a specific error for it. In the other functions the "nil" object is handled quietly but without a nullptr dereference and hopefully no UB.
89 lines
2.7 KiB
YAML
89 lines
2.7 KiB
YAML
AccessModifierOffset: -2
|
|
AlignAfterOpenBracket: BlockIndent # New in v14. For earlier clang-format versions, use AlwaysBreak instead.
|
|
AlignConsecutiveMacros: false
|
|
AlignConsecutiveAssignments: false
|
|
AlignConsecutiveDeclarations: false
|
|
AlignEscapedNewlines: DontAlign
|
|
AlignOperands: false
|
|
AlignTrailingComments: false
|
|
AllowAllArgumentsOnNextLine: false
|
|
AllowAllConstructorInitializersOnNextLine: false
|
|
AllowAllParametersOfDeclarationOnNextLine: false
|
|
AllowShortBlocksOnASingleLine: Empty
|
|
AllowShortCaseLabelsOnASingleLine: false
|
|
AllowShortFunctionsOnASingleLine: Empty
|
|
AllowShortIfStatementsOnASingleLine: Never
|
|
AllowShortLambdasOnASingleLine: All
|
|
AllowShortLoopsOnASingleLine: false
|
|
AlwaysBreakAfterReturnType: None
|
|
AlwaysBreakBeforeMultilineStrings: true
|
|
AlwaysBreakTemplateDeclarations: Yes
|
|
BinPackArguments: false
|
|
BinPackParameters: false
|
|
BreakAfterAttributes: Always
|
|
BreakBeforeBinaryOperators: NonAssignment
|
|
BreakBeforeBraces: Attach
|
|
BreakBeforeTernaryOperators: true
|
|
BreakConstructorInitializers: AfterColon
|
|
BreakInheritanceList: AfterColon
|
|
BreakStringLiterals: false
|
|
ColumnLimit: 98
|
|
CompactNamespaces: false
|
|
ConstructorInitializerAllOnOneLineOrOnePerLine: true
|
|
ConstructorInitializerIndentWidth: 4
|
|
ContinuationIndentWidth: 4
|
|
Cpp11BracedListStyle: true
|
|
DerivePointerAlignment: false
|
|
FixNamespaceComments: true
|
|
IncludeBlocks: Regroup
|
|
IncludeCategories:
|
|
- Regex: '^<ext/.*\.h>'
|
|
Priority: 2
|
|
SortPriority: 0
|
|
CaseSensitive: false
|
|
- Regex: '^<.*\.h>'
|
|
Priority: 1
|
|
SortPriority: 0
|
|
CaseSensitive: false
|
|
- Regex: '^<.*'
|
|
Priority: 2
|
|
SortPriority: 0
|
|
CaseSensitive: false
|
|
- Regex: '.*'
|
|
Priority: 3
|
|
SortPriority: 0
|
|
CaseSensitive: false
|
|
IncludeIsMainRegex: '([-_](test|unittest))?$'
|
|
IndentCaseLabels: true
|
|
IndentPPDirectives: BeforeHash
|
|
IndentWidth: 3
|
|
IndentWrappedFunctionNames: false
|
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
|
MaxEmptyLinesToKeep: 1
|
|
NamespaceIndentation: Inner
|
|
PointerAlignment: Left
|
|
ReferenceAlignment: Left # New in v13. int &name ==> int& name
|
|
ReflowComments: false
|
|
SeparateDefinitionBlocks: Always # New in v14.
|
|
SortIncludes: true
|
|
SortUsingDeclarations: true
|
|
SpaceAfterCStyleCast: false
|
|
SpaceAfterLogicalNot: false
|
|
SpaceAfterTemplateKeyword: false
|
|
SpaceBeforeAssignmentOperators: true
|
|
SpaceBeforeCpp11BracedList: true
|
|
SpaceBeforeCtorInitializerColon: true
|
|
SpaceBeforeInheritanceColon: false
|
|
SpaceBeforeParens: ControlStatements
|
|
SpaceBeforeRangeBasedForLoopColon: true
|
|
SpaceInEmptyParentheses: false
|
|
SpacesBeforeTrailingComments: 2
|
|
SpacesInAngles: false
|
|
SpacesInCStyleCastParentheses: false
|
|
SpacesInContainerLiterals: false
|
|
SpacesInParentheses: false
|
|
SpacesInSquareBrackets: false
|
|
Standard: Cpp11
|
|
TabWidth: 4
|
|
UseTab: Never
|