Merge pull request #17035 from Chaosus/fixleaks

Fix memory leaks
This commit is contained in:
Rémi Verschelde 2018-03-03 15:06:34 +01:00 committed by GitHub
commit cbb4fe45d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 2 deletions

View File

@ -11,6 +11,9 @@ The files were adapted to Godot by removing the dependency on b2Math (replacing
it by b2Glue.h) and commenting out some verbose printf calls.
Upstream code has not changed in 10 years, no need to keep track of changes.
Important: Some files have Godot-made changes.
They are marked with `// -- GODOT start --` and `// -- GODOT end --`
comments.
## bullet
@ -69,6 +72,9 @@ Files extracted from upstream source:
- all .cpp and .h files in EtcLib/
- README.md, LICENSE, AUTHORS
Important: Some files have Godot-made changes.
They are marked with `// -- GODOT start --` and `// -- GODOT end --`
comments.
## fonts
@ -165,6 +171,9 @@ Files extracted from upstream source:
TODO.
Important: Some files have Godot-made changes.
They are marked with `// -- GODOT start --` and `// -- GODOT end --`
comments.
## libtheora

View File

@ -1342,7 +1342,12 @@ b2Polygon TraceEdge(b2Polygon* p){
if (nodes[j].nConnected == 0) continue;
b2Vec2 diff = nodes[i].position - nodes[j].position;
if (diff.LengthSquared() <= COLLAPSE_DIST_SQR){
if (nActive <= 3) return b2Polygon();
if (nActive <= 3) {
// -- GODOT start --
delete[] nodes;
// -- GODOT end --
return b2Polygon();
}
//printf("Found dupe, %d left\n",nActive);
--nActive;
foundDupe = true;

View File

@ -228,6 +228,9 @@ int FilterTwoPass( RGBCOLOR *pSrcImage, int srcWidth, int srcHeight,
pTempImage = (RGBCOLOR *)malloc( destWidth * srcHeight * sizeof(RGBCOLOR) );
if ( pTempImage == NULL )
{
// -- GODOT start --
free( contrib );
// -- GODOT end --
return 0;
}

View File

@ -1284,7 +1284,9 @@ long Segment::DoLoadCluster(long long& pos, long& len) {
pos += cluster_size;
m_pos = pos;
// -- GODOT start --
delete pCluster;
// -- GODOT end --
if (segment_stop > 0 && m_pos > segment_stop)
return E_FILE_FORMAT_INVALID;