storage/mozIStorageRow.idl
author Ralph Giles <giles@mozilla.com>
Tue, 31 Jan 2017 17:24:17 -0800
changeset 360930 931cbdebf471a80bddf8d834093c5ea6601e87c5
parent 264219 ad01543457e739b4eee7a245e16734a3ecfd10ad
permissions -rw-r--r--
Bug 1333931 - Handle nullptr TextTrack objects in sorting. r=kinetik Check for nullptr arguments passed to CompareTextTracks. Based on Ben Kelly's analysis this can happen if the cycle collector has cleared a TextTrack pointer while comparision is still happening, perhaps in a queued event task. This change makes nullptr sort to the end, and adds a MOZ_DIAGNOSTIC_ASSERT for trying to get the position of a nullptr track should someone add another call at a later date.

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: sw=2 ts=2 sts=2 expandtab 
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "mozIStorageValueArray.idl"
interface nsIVariant;

[scriptable, uuid(62d1b6bd-cbfe-4f9b-aee1-0ead4af4e6dc)]
interface mozIStorageRow : mozIStorageValueArray {

  /**
   * Obtains the result of a given column specified by aIndex.
   *
   * @param aIndex
   *        Zero-based index of the result to get from the tuple.
   * @returns the result of the specified column.
   */
  nsIVariant getResultByIndex(in unsigned long aIndex);

  /**
   * Obtains the result of a given column specified by aName.
   *
   * @param aName
   *        Name of the result to get from the tuple.
   * @returns the result of the specified column.
   * @note The name of a result column is the value of the "AS" clause for that
   *       column.  If there is no AS clause then the name of the column is
   *       unspecified and may change from one release to the next.
   */
  nsIVariant getResultByName(in AUTF8String aName);
};