On Wednesday 25 July 2007 00:27:40 Andy Lester wrote: > >> Because PMCNULL can be (PMC)NULL or it can be PMCNULL, a special non- > >> null variable. > >> > >> See how it's defined in the header. > > > > I thought we fixed it. Let's fix it. > > I don't know what the broken is. We don't want a special PMCNULL > value? What is the backstory on PMCNULL?
PMCNULL is a singleton Null PMC. It's good. We like it. Hooray for PMCNULL. Allowing PMC_IS_NULL to take Maybe NULL PMCNULL sucks though. PMCNULL should be the only way to have a null PMC. (Why? Because if we perform any action on PMCNULL, we'll get a sensible error -- "HEY bucko, you have a Null PMC here!" If we perform any action on NULL, we'll get an insensible error -- "CRASHY CRASHY!" at best, and "Wow! I'm way over HERE in memory now and this doesn't LOOK like a PMC, but I'll just follow THIS random memory because it's where that pointer would be if this were a PMC and CRASHY CRASHY elsewhere.") -- c