erikdoe / ocmock

Mock objects for Objective-C
http://ocmock.org
Apache License 2.0
2.16k stars 606 forks source link

Exception when the (meta)class for a mock has been changed underneath it #438

Closed dmaclach closed 4 years ago

dmaclach commented 4 years ago

In certain cases OCMock was deleting a class that it hadn't created, and then usually causing a crash. It will now throw an exception when it determines that the class has been changed.

erikdoe commented 4 years ago

Sorry, I pulled the previous commit and was ready for merging back. What did change just now?

dmaclach commented 4 years ago

Oh apologies. I just rebased on top of master to pick up the nil change locally on my branches.

On Tue, Jul 14, 2020 at 1:59 PM Erik Doernenburg notifications@github.com wrote:

Sorry, I pulled the previous commit and was ready for merging back. What did change just now?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/erikdoe/ocmock/pull/438#issuecomment-658410269, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACOFSPEIB2BUWSDZOCXYO3R3TBKPANCNFSM4OKXL4QQ .

erikdoe commented 4 years ago

No worries. In the meantime I noticed I can reproduce the dealloc problem. For me, with the fixed stopObserving method the only way to fix the test is to make sure no code path gets to call removeObserver:. If I do that, then the test / test suite passes without throwing.

dmaclach commented 4 years ago

Yeah. Sorry about the copy/paste error that just happened to "fix" the problem in a horrible way.

On Tue, Jul 14, 2020 at 2:09 PM Erik Doernenburg notifications@github.com wrote:

No worries. In the meantime I noticed I can reproduce the dealloc problem. For me, with the fixed stopObserving method is to make sure no code path gets to call removeObserver. If I do that, then the test / test suite passes without throwing.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/erikdoe/ocmock/pull/438#issuecomment-658414807, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACOFSIMU3KT3H6ZQENSC6TR3TCP5ANCNFSM4OKXL4QQ .

erikdoe commented 4 years ago

So, I've merged the previous commit to master and pushed it. Seems like Github doesn't see this. So, closing this manually.