mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 10:15:41 +00:00
6ed8680108
The style system already atomizes all CustomIdent values, which means that we're just wasting memory and CPU by doing string copies all over the place. This patch fixes it. This also simplifies further changes to use as much of the rust data structures as possible. I had to switch from nsTHashtable to mozilla::HashTable because the former doesn't handle well non-default-constructible structs (like NamedLine, which now has a StyleAtom, which is not default-constructible). Differential Revision: https://phabricator.services.mozilla.com/D35119 --HG-- extra : moz-landing-system : lando
56 lines
1.5 KiB
C++
56 lines
1.5 KiB
C++
/* -*- 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_dom_GridArea_h
|
|
#define mozilla_dom_GridArea_h
|
|
|
|
#include "mozilla/dom/GridBinding.h"
|
|
#include "nsWrapperCache.h"
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
class Grid;
|
|
|
|
class GridArea : public nsISupports, public nsWrapperCache {
|
|
public:
|
|
explicit GridArea(Grid* aParent, nsAtom* aName, GridDeclaration aType,
|
|
uint32_t aRowStart, uint32_t aRowEnd, uint32_t aColumnStart,
|
|
uint32_t aColumnEnd);
|
|
|
|
protected:
|
|
virtual ~GridArea();
|
|
|
|
public:
|
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
|
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(GridArea)
|
|
|
|
virtual JSObject* WrapObject(JSContext* aCx,
|
|
JS::Handle<JSObject*> aGivenProto) override;
|
|
Grid* GetParentObject() { return mParent; }
|
|
|
|
void GetName(nsString& aName) const;
|
|
GridDeclaration Type() const;
|
|
uint32_t RowStart() const;
|
|
uint32_t RowEnd() const;
|
|
uint32_t ColumnStart() const;
|
|
uint32_t ColumnEnd() const;
|
|
|
|
protected:
|
|
RefPtr<Grid> mParent;
|
|
const RefPtr<nsAtom> mName;
|
|
const GridDeclaration mType;
|
|
const uint32_t mRowStart;
|
|
const uint32_t mRowEnd;
|
|
const uint32_t mColumnStart;
|
|
const uint32_t mColumnEnd;
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif /* mozilla_dom_GridTrack_h */
|