{"push_id":664490498,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"57ed7c123d5af79617bc35fda90d845c5a2508ef","before":"c8ce9ab15651095a3304fa849e2bc6528883becc","commits":[{"sha":"dc4b8571f97515f30eed334f94142f7d1f761674","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Make AphrontWriteGuard disposal more durable\n\nSummary:\nRef T8198. Currently, if you swap a write guard like this:\n\n```\n$write_guard->dispose();\n$write_guard = new AphrontWriteGuard('callback');\n```\n\n...the second line does this:\n\n  - Creates a new WriteGuard object.\n  - Assigns it to `self::$instance`.\n  - Invokes `__destroy()` on the old object.\n\nAt this point, we'll throw an exception, even though we disposed of the write guard properly.\n\nInstead, flag write guard disposal explicitly to prevent this issue.\n\nTest Plan: See next diff.\n\nReviewers: btrahan\n\nReviewed By: btrahan\n\nSubscribers: epriestley\n\nManiphest Tasks: T8198\n\nDifferential Revision: https://secure.phabricator.com/D12841","distinct":true,"url":"https://api.github.com/repos/freebsd/libphutil/commits/dc4b8571f97515f30eed334f94142f7d1f761674"},{"sha":"afc60bc131e12779b9c73d5ee581d509ff4c3198","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@epriestley.com","name":"epriestley"},"message":"Revert pht() of PhutilBootloader\n\nThese errors can occur too early in the stack for pht() to work. See P1782 for an example.\n\nAuditors: btrahan, joshuaspence","distinct":true,"url":"https://api.github.com/repos/freebsd/libphutil/commits/afc60bc131e12779b9c73d5ee581d509ff4c3198"},{"sha":"57ed7c123d5af79617bc35fda90d845c5a2508ef","author":{"email":"da2ea5bee82302925a2874f529684e980c179d70@eitanadler.com","name":"Eitan Adler"},"message":"Add hack since upstream will never support this use case (see\nhttps://secure.phabricator.com/T8014)","distinct":true,"url":"https://api.github.com/repos/freebsd/libphutil/commits/57ed7c123d5af79617bc35fda90d845c5a2508ef"}]}