On Mon, 4 Dec 2023 09:26:57 GMT, Julian Waters <jwat...@openjdk.org> wrote:
>> I regret not actually addressing the issues with the goto labels in >> https://github.com/openjdk/jdk/pull/15996, where initialization of locals in >> sspi were jumped over by gotos to a certain label. I changed the >> initializations into split declarations and assignments in >> https://github.com/openjdk/jdk/pull/15996, but this is simply a hack and >> does not address the real issue of gotos jumping over locals. I've as such >> fixed the issues with them properly this time, by simply deleting the labels >> and duplicating the code where they're used. As mentioned, this >> unfortunately does increase duplicate code, but is the cleanest solution I >> could come up with for the labels > > Julian Waters has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains four additional > commits since the last revision: > > - Merge branch 'openjdk:master' into patch-9 > - NULL to nullptr in sspi.cpp > - Missed labels in sspi.cpp > - Actually resolve issues with goto labels in sspi I still don't like this solution: 1. Duplicated lines. 2. There are other `goto`s in this file. I know they happen to be unaffected, but if `goto` is not recommended in C++ it looks unfair to remove some and keep some. Can we throw and catch exceptions? Or, how difficult is it to rewrite to simply C? Just substitute `new` and `delete` with `malloc` and `free`? ------------- PR Comment: https://git.openjdk.org/jdk/pull/16682#issuecomment-1840980100