FName - Pass by value or pass by reference

in my experience, passing FNames by reference can create real issues, where the fname changes under your feet. even when passing it as const FName.

this tend to happen if you have the fname in an array or map, but also on other cases.
the fname is meant to be a hashed index to a string table, hence the small size.
it gave me enough headaches to decide to pass it by value instead.
passing it as value is somewhat acceptable, disappointing, but acceptable.

i haven’t had the time to decipher why that happens, but since i can’t trust it, i can’t really use it. unless im 100% sure it’s ok.

also i’ve checked the source for fname recently, and i’m not sure it’s 3 uint32, i think it’s only 2 but one of them is selected depending on some macros.