This may turn out to be a stupid idea, but any chance you can change the depth code to be +1 so the default value for depth here is 0?

That saves at least a few instructions when setting up the object, because the field will have already been zeroed out by the GC before the object was allocated to us.