author Ralph Giles <>
Tue, 31 Jan 2017 17:24:17 -0800
changeset 360930 931cbdebf471a80bddf8d834093c5ea6601e87c5
parent 264220 dd79977a3286d947aff8e270245d05c05e676964
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 et lcs=trail\:.,tab\:>~ :
 * 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 */

#ifndef mozStorageArgValueArray_h
#define mozStorageArgValueArray_h

#include "mozIStorageValueArray.h"
#include "mozilla/Attributes.h"

#include "sqlite3.h"

namespace mozilla {
namespace storage {

class ArgValueArray final : public mozIStorageValueArray
  ArgValueArray(int32_t aArgc, sqlite3_value **aArgv);


  ~ArgValueArray() {}

  uint32_t mArgc;
  sqlite3_value **mArgv;

} // namespace storage
} // namespace mozilla

#endif // mozStorageArgValueArray_h