Instance variables are simply not used here. Not even hidden ones (name doesn't start with @, so they're inaccessible in Ruby, but not in C++). They are directly stored in dynamically allocated memory (a C++ POD struct in this case). The getter methods simply read the integer from the memory, convert it to a Fix- or Bignum, and return the converted value.
If you want to know the details, you can lookup native extensions, Data (replaced by TypedData in newer Ruby versions) and T_DATA by reading README.EXT, which comes with the Ruby source, or this
PDF (jukebox example), etc.