Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dist/include/nsArrayUtils.h
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
3
/* This Source Code Form is subject to the terms of the Mozilla Public
4
 * License, v. 2.0. If a copy of the MPL was not distributed with this
5
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7
#ifndef nsArrayUtils_h__
8
#define nsArrayUtils_h__
9
10
#include "nsCOMPtr.h"
11
#include "nsIArray.h"
12
13
// helper class for do_QueryElementAt
14
class MOZ_STACK_CLASS nsQueryArrayElementAt final : public nsCOMPtr_helper
15
{
16
public:
17
  nsQueryArrayElementAt(nsIArray* aArray, uint32_t aIndex,
18
                        nsresult* aErrorPtr)
19
    : mArray(aArray)
20
    , mIndex(aIndex)
21
    , mErrorPtr(aErrorPtr)
22
0
  {
23
0
  }
24
25
  virtual nsresult NS_FASTCALL operator()(const nsIID& aIID, void**) const
26
    override;
27
28
private:
29
  nsIArray* MOZ_NON_OWNING_REF mArray;
30
  uint32_t   mIndex;
31
  nsresult*  mErrorPtr;
32
};
33
34
inline const nsQueryArrayElementAt
35
do_QueryElementAt(nsIArray* aArray, uint32_t aIndex, nsresult* aErrorPtr = 0)
36
0
{
37
0
  return nsQueryArrayElementAt(aArray, aIndex, aErrorPtr);
38
0
}
39
40
#endif // nsArrayUtils_h__