xpcom/base/DeferredFinalize.h
author B2G Bumper Bot <release+b2gbumper@mozilla.com>
Fri, 26 Feb 2016 15:39:19 -0800
changeset 325591 9267d7d90e5741f47d0b68ce9227fbacf8d4aa2e
parent 280016 df2676f8ee8b5e07f8a6d58bd1de4a2023c36a9e
child 482981 67736c575b34196f9e2f5100b8e670ae625e3786
permissions -rw-r--r--
Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/60965134996d Author: Sean Lee <weilonge@gmail.com> Desc: Merge pull request #34063 from weilonge/seanlee/DataSync/master/Bug1244169 Bug 1244169 - Implement Tabs sync data adapter. r=ferjm,michielbdejong ======== https://hg.mozilla.org/integration/gaia-central/rev/644529e8fb66 Author: Sean Lee <selee@mozilla.com> Desc: Bug 1244169 - Implement Tabs sync data adapter. r=ferjm,michielbdejong

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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/. */

#ifndef mozilla_DeferredFinalize_h
#define mozilla_DeferredFinalize_h

class nsISupports;

namespace mozilla {

// Called back from DeferredFinalize.  Should add 'thing' to the array of smart
// pointers in 'pointers', creating the array if 'pointers' is null, and return
// the array.
typedef void* (*DeferredFinalizeAppendFunction)(void* aPointers, void* aThing);

// Called to finalize a number of objects. Slice is the number of objects to
// finalize. The return value indicates whether it finalized all objects in the
// buffer. If it returns true, the function will not be called again, so the
// function should free aData.
typedef bool (*DeferredFinalizeFunction)(uint32_t aSlice, void* aData);

void DeferredFinalize(DeferredFinalizeAppendFunction aAppendFunc,
                      DeferredFinalizeFunction aFunc,
                      void* aThing);

void DeferredFinalize(nsISupports* aSupports);

} // namespace mozilla

#endif // mozilla_DeferredFinalize_h