fix(physics): update local body variable after creating MatterTileBody#7273
Open
cyphercodes wants to merge 1 commit intophaserjs:masterfrom
Open
fix(physics): update local body variable after creating MatterTileBody#7273cyphercodes wants to merge 1 commit intophaserjs:masterfrom
cyphercodes wants to merge 1 commit intophaserjs:masterfrom
Conversation
Fixes a scope bug where the local 'body' variable remained null after creating the body via setFromTileCollision() or setFromTileRectangle(). This caused a crash when processing flipped tiles because Body.scale() was called with null. Fixes phaserjs#7267
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Fixes a scope bug in MatterTileBody where the local 'body' variable remained null after creating the body via setFromTileCollision() or setFromTileRectangle(). This caused a crash when processing flipped tiles because Body.scale() was called with null.
Bug
When Matter.World.convertTilemapLayer() processes a tile that has flipX or flipY set, it crashes with:
Root Cause
The constructor declares a local body variable initialised to null, then creates the actual body via setFromTileCollision() or setFromTileRectangle() — both of which set this.body but never update the local body variable. Immediately after, the flip check reads from the stale local.
Fix
Add one line to update the local body variable after the body is created:
Fixes #7267
Note
Low Risk
Low risk, single-line fix in
MatterTileBodyconstructor to preventnullbody usage when scaling flipped tiles.Overview
Fixes a constructor scoping bug in
MatterTileBodywhere the localbodyvariable could remainnullafter creating a body from tile collision shapes or a tile rectangle.After generating the body via
setFromTileCollision()/setFromTileRectangle(), it now reassignsbody = this.bodyso the subsequent flip handling (Body.scaleforflipX/flipY) operates on the created body instead of crashing.Reviewed by Cursor Bugbot for commit 415a5fc. Bugbot is set up for automated code reviews on this repo. Configure here.