The traits that don't specify a GP unit type are the Philosophical, and its opposite, the Populist.
@Thunderbrd,
For such a trait as Philosophical, which adds a plain GP point bonus but does not specify any GP unit class, the getGreatPeopleUnitClass() will return NO_UNITCLASS.
The previous code seems to handle NO_UNITCLASS (but doesn't resolve.) As with the new code (rev. 10566), this guard is gone, but for Philosophical, it's simply passing NO_UNITCLASS into changeNationalGreatPeopleUnitRate(), which it doesn't expect to see.
There needs to be a Base (general, gross) GP rate in CvPlayer, as in CvCity, to keep track of such modifier, and some more code to use it.
But the real question is - on the extreme, one city in an early era may not have any specialist at all. Should a city start to accumulate GP points even though it doesn't mean to?
Further, as we save just enough general GP progress to warrant one, how does it determine which GP we get, just randomly? On the other hand, it also possibly enables a crooked strategy: while the general GP points accumulate, we don't appoint a specialist or build particular buildings until we are about to max the gross GP progress. The next turn, we have exactly the type of GP we wanted.
The solution is to, in addition to the general bonus, spread it out evenly, toward every type of GP, while we don't have to divide the bonus into 12 parts - every unit class still receives +2 or so and it's working as normal; more properly, even.
But last question is, how about those later-era GPs, like great statesman, detective, and admiral? Do we want to promote every possible great person from the late game, as early as one can choose a Philosophical trait?
@Dancing Hoskuld ,
As per your opinion, which one is better -
1. spread the points evenly to every great person type.
2. add 0 instead, and if the pool is all zeroes when general GP progress max out, still choose randomly, probabilities equal.
I can think of a case. We appoint a priest (+3) on the last turn before a GP is born. If it is the first way, the pool is already filled very deep and evenly, so a +3 does not bias the result to any degree. If it is the other, then we can effectively get a great prophet, hence the crooked strategy. Is it better to allow such strategy? Or we should tell the player, "reap what you sow."
I read your post again and think that you agree with the first.
========
I don't find any building with GP point that doesn't specify the GP type, so the issue with Philosophical may be new to C2C...