New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Immibis's Microblocks compatibility regression #354

Closed
immibis opened this Issue Oct 28, 2014 · 6 comments

Comments

Projects
None yet
5 participants
@immibis

immibis commented Oct 28, 2014

AEBaseTile.writeToNBT and AEBaseTile.readFromNBT are final methods.

TileCableBus is a subclass of AEBaseTile, which is marked for transformation by Immibis's Microblocks. Since IMB adds writeToNBT and readFromNBT overrides to this class (to save microblock data) this results in a VerifyError at runtime. Ideally these methods should not be final in AEBaseTile.

Amusingly, there's a comment before their definitions - "Was final, changed for Immibis." - yet they are still final.

@AlgorithmX2

This comment has been minimized.

Show comment
Hide comment
@AlgorithmX2
Contributor

AlgorithmX2 commented Oct 28, 2014

@thatsIch

This comment has been minimized.

Show comment
Hide comment
@thatsIch

thatsIch Nov 2, 2014

Member

I am not sure, from what I read, the ASMTweaker class already handles the AEBaseTile and removes the final attribute through the private method makePublic

Member

thatsIch commented Nov 2, 2014

I am not sure, from what I read, the ASMTweaker class already handles the AEBaseTile and removes the final attribute through the private method makePublic

@MrMetric

This comment has been minimized.

Show comment
Hide comment
@MrMetric

MrMetric Nov 11, 2014

Contributor

What's the point of having it that way if it's just going to be changed anyway?

Contributor

MrMetric commented Nov 11, 2014

What's the point of having it that way if it's just going to be changed anyway?

@thatsIch

This comment has been minimized.

Show comment
Hide comment
@thatsIch

thatsIch Nov 12, 2014

Member

what you mean?

Member

thatsIch commented Nov 12, 2014

what you mean?

@Cisien

This comment has been minimized.

Show comment
Hide comment
@Cisien

Cisien Nov 12, 2014

Contributor

I think he means that this should not be final in the code instead of changing it at runtime with asm

Contributor

Cisien commented Nov 12, 2014

I think he means that this should not be final in the code instead of changing it at runtime with asm

@thatsIch

This comment has been minimized.

Show comment
Hide comment
@thatsIch

thatsIch Nov 12, 2014

Member

I see

@MrMetric that means you can not override it on compile time and child classes cannot see this method at all. It is basically just for our code.

Member

thatsIch commented Nov 12, 2014

I see

@MrMetric that means you can not override it on compile time and child classes cannot see this method at all. It is basically just for our code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment