Better move the `*(char **) = self -> string_value` after the if (it's less confusing).