private RealmResults(BaseRealm realm, TableOrView table, Class<E> classSpec) {
    this.realm = realm;
    this.classSpec = classSpec;
    this.table = table;

    this.pendingQuery = null;
    this.query = null;
    this.currentTableViewVersion = table.sync();
  }
  /** Notifies all registered listeners. */
  void notifyChangeListeners() {
    if (listeners != null && !listeners.isEmpty()) {
      // table might be null (if the async query didn't complete
      // but we have already registered listeners for it)
      if (pendingQuery != null && !isCompleted) return;

      // FIXME: still waiting for Core to provide a fix
      //       for crash when calling _sync_if_needed on a cleared View.
      //       https://github.com/realm/realm-core/pull/1390
      long version = table.sync();
      if (currentTableViewVersion != version) {
        currentTableViewVersion = version;
        for (RealmChangeListener listener : listeners) {
          listener.onChange();
        }
      }
    }
  }