summaryrefslogtreecommitdiffstats
path: root/courgette/ensemble.h
diff options
context:
space:
mode:
Diffstat (limited to 'courgette/ensemble.h')
-rw-r--r--courgette/ensemble.h24
1 files changed, 13 insertions, 11 deletions
diff --git a/courgette/ensemble.h b/courgette/ensemble.h
index f907f9d..e766782 100644
--- a/courgette/ensemble.h
+++ b/courgette/ensemble.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -36,11 +36,14 @@ class PEInfo;
//
class Element {
public:
- enum Kind { WIN32_X86_WITH_CODE, WIN32_NOCODE };
+ Element(ExecutableType kind,
+ Ensemble* ensemble,
+ const Region& region,
+ PEInfo*info);
- virtual ~Element() {}
+ virtual ~Element();
- Kind kind() const { return kind_; }
+ ExecutableType kind() const { return kind_; }
const Region& region() const { return region_; }
// The name is used only for debugging and logging.
@@ -50,16 +53,14 @@ class Element {
// containing Ensemble.
size_t offset_in_ensemble() const;
- // Some subclasses of Element might have a PEInfo.
- virtual PEInfo* GetPEInfo() const { return NULL; }
-
- protected:
- Element(Kind kind, Ensemble* ensemble, const Region& region);
+ // The ImageInfo for this executable
+ virtual PEInfo* GetImageInfo() const { return info_; }
private:
- Kind kind_;
+ ExecutableType kind_;
Ensemble* ensemble_;
Region region_;
+ PEInfo *info_;
DISALLOW_COPY_AND_ASSIGN(Element);
};
@@ -139,7 +140,8 @@ struct CourgettePatchFile {
static const uint32 kVersion = 20110216;
- // Transformation method IDs.
+ // Transformation method IDs. These are embedded in generated files, so
+ // never remove or change an existing id.
enum TransformationMethodId {
T_COURGETTE_WIN32_X86 = 1, // Windows 32 bit 'Portable Executable' x86.
};