objects.add(loadConfigurationElementAndChildren(mainInput, null, 1, 2, objects, -1), holdObjects);
objects.add(loadConfigurationElementAndChildren(mainInput, null, 1, 2, objects, null), holdObjects);
	public ExtensionPoint loadExtensionPointTree(int offset, RegistryObjectManager objects) {		try {			synchronized (mainDataFile) {				ExtensionPoint xpt = (ExtensionPoint) loadExtensionPoint(offset);				int[] children = xpt.getRawChildren();				int nbrOfExtension = children.length;				for (int i = 0; i < nbrOfExtension; i++) {					Extension loaded = basicLoadExtension(mainInput);					objects.add(loaded, holdObjects);				}				for (int i = 0; i < nbrOfExtension; i++) {					int nbrOfCe = mainInput.readInt();					for (int j = 0; j < nbrOfCe; j++) {						// note that max depth is set to 2 and extra input is never going to 						// be used in this call to the loadConfigurationElementAndChildren().						objects.add(loadConfigurationElementAndChildren(mainInput, null, 1, 2, objects, -1), holdObjects);					}				}				return xpt;			}		} catch (IOException e) {			String message = NLS.bind(RegistryMessages.meta_regCacheIOExceptionReading, mainDataFile);			log(new Status(IStatus.ERROR, RegistryMessages.OWNER_NAME, fileError, message, e));			if (DEBUG)				log(new Status(IStatus.ERROR, RegistryMessages.OWNER_NAME, fileError, "Error reading an extension point tree (" + offset + ") from the registry cache", e)); //$NON-NLS-1$//$NON-NLS-2$			return null;		}	}