mirror of
https://github.com/drewcassidy/KSP-Conformal-Decals.git
synced 2024-09-01 18:23:54 +00:00
Merge pull request #38 from linuxgurugamer/main
Nullref fix and memory leak fix
This commit is contained in:
commit
88b2b4841a
@ -8,6 +8,12 @@ All notable changes to this project will be documented in this file
|
|||||||
| website | https://forum.kerbalspaceprogram.com/index.php?/topic/194802-18-111-conformal-decals |
|
| website | https://forum.kerbalspaceprogram.com/index.php?/topic/194802-18-111-conformal-decals |
|
||||||
| author | Andrew Cassidy |
|
| author | Andrew Cassidy |
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.11 - Unreleased, changes submitted by Linuxgurugamer
|
||||||
|
Fixed nullref caused when an entry in _targets was null
|
||||||
|
Fixed memory leak caused by the OnDestroy() methods not being called due to them being virtual
|
||||||
|
|
||||||
|
|
||||||
## 0.2.10 - 2022-03-14
|
## 0.2.10 - 2022-03-14
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@ -283,7 +283,7 @@ namespace ConformalDecals {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void OnDestroy() {
|
public void OnDestroy() {
|
||||||
// remove GameEvents
|
// remove GameEvents
|
||||||
if (HighLogic.LoadedSceneIsEditor) {
|
if (HighLogic.LoadedSceneIsEditor) {
|
||||||
GameEvents.onEditorPartEvent.Remove(OnEditorEvent);
|
GameEvents.onEditorPartEvent.Remove(OnEditorEvent);
|
||||||
@ -440,7 +440,8 @@ namespace ConformalDecals {
|
|||||||
|
|
||||||
// update projection
|
// update projection
|
||||||
foreach (var target in _targets) {
|
foreach (var target in _targets) {
|
||||||
target.Project(_orthoMatrix, decalProjectorTransform, _boundsRenderer.bounds, useBaseNormal);
|
if (target != null)
|
||||||
|
target.Project(_orthoMatrix, decalProjectorTransform, _boundsRenderer.bounds, useBaseNormal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -577,7 +578,8 @@ namespace ConformalDecals {
|
|||||||
|
|
||||||
// render on each target object
|
// render on each target object
|
||||||
foreach (var target in _targets) {
|
foreach (var target in _targets) {
|
||||||
target.Render(_decalMaterial, part.mpb, camera);
|
if (target != null)
|
||||||
|
target.Render(_decalMaterial, part.mpb, camera);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,14 +48,12 @@ namespace ConformalDecals {
|
|||||||
UpdateFlag();
|
UpdateFlag();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnDestroy() {
|
public void OnDestroy() {
|
||||||
if (HighLogic.LoadedSceneIsEditor) {
|
if (HighLogic.LoadedSceneIsEditor) {
|
||||||
// Unregister flag change event
|
// Unregister flag change event
|
||||||
GameEvents.onMissionFlagSelect.Remove(OnEditorFlagSelected);
|
GameEvents.onMissionFlagSelect.Remove(OnEditorFlagSelected);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
base.OnDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
[KSPEvent(guiActive = false, guiActiveEditor = true, guiName = "#LOC_ConformalDecals_gui-select-flag")]
|
[KSPEvent(guiActive = false, guiActiveEditor = true, guiName = "#LOC_ConformalDecals_gui-select-flag")]
|
||||||
public void SelectFlag() {
|
public void SelectFlag() {
|
||||||
|
@ -220,15 +220,13 @@ namespace ConformalDecals {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnDestroy() {
|
public void OnDestroy() {
|
||||||
if (HighLogic.LoadedSceneIsGame && _currentText != null) TextRenderer.UnregisterText(_currentText);
|
if (HighLogic.LoadedSceneIsGame && _currentText != null) TextRenderer.UnregisterText(_currentText);
|
||||||
|
|
||||||
// close all UIs
|
// close all UIs
|
||||||
if (_textEntryController != null) _textEntryController.Close();
|
if (_textEntryController != null) _textEntryController.Close();
|
||||||
if (_fillColorPickerController != null) _fillColorPickerController.Close();
|
if (_fillColorPickerController != null) _fillColorPickerController.Close();
|
||||||
if (_outlineColorPickerController != null) _outlineColorPickerController.Close();
|
if (_outlineColorPickerController != null) _outlineColorPickerController.Close();
|
||||||
|
|
||||||
base.OnDestroy();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDetach() {
|
protected override void OnDetach() {
|
||||||
|
Loading…
Reference in New Issue
Block a user