[webkit-reviews] review granted: [Bug 20981] Store per-class info in StructureID : [Attachment 23639] add per-class TypeInfo to the StructureID (right now only used for JSType)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Sep 21 19:51:36 PDT 2008


Darin Adler <darin at apple.com> has granted Maciej Stachowiak <mjs at apple.com>'s
request for review:
Bug 20981: Store per-class info in StructureID
https://bugs.webkit.org/show_bug.cgi?id=20981

Attachment 23639: add per-class TypeInfo to the StructureID (right now only
used for JSType)
https://bugs.webkit.org/attachment.cgi?id=23639&action=edit

------- Additional Comments from Darin Adler <darin at apple.com>
I see this:

    OBJECT_OFFSET(StructureID, m_typeInfo) + OBJECT_OFFSET(TypeInfo, m_type)

Sometimes I've written that as:

    OBJECT_OFFSET(StructureID, m_typeInfo.m_type)

Not sure the pros and cons.

+#include "JSCallbackConstructor.h"
+#include "JSCallbackFunction.h"
+#include "JSCallbackObject.h"

What's this change to AllInOneFile.cpp about? Doesn't seem right to me. Maybe
you pasted here by accident meaning to paste into JSGlobalObject.cpp at one
point?

-	 return m_structureID->type() == ObjectType;
+	 return m_structureID->typeInfo().type() == ObjectType;

You could have sugared this by retaining a StructureID;:type() function. Why
did you chose not to?

+#include "JSCallbackConstructor.h"
+#include "JSCallbackFunction.h"
+#include "JSCallbackObject.h"
 #include "ArrayConstructor.h"

Why aren't these sorted alphabetically in JSGlobalObject.cpp?

+++ JavaScriptCore/kjs/RegExpMatchesArray.h	(revision 0)
@@ -0,0 +1,47 @@
+/*
+ *  Copyright (C) 1999-2000 Harri Porten (porten at kde.org)
+ *  Copyright (C) 2003, 2007, 2008 Apple Inc. All Rights Reserved.

This class is new this year and doesn't need the pre-2008 copyrights on its
source file.

+	 TypeInfo(JSType type) : m_type(type) {}

We normally put spaces in those braces.

+    JSC::StructureID* createDOMStructure(JSC::ExecState*,
CreateStructureIDFunction, const JSC::ClassInfo*, JSC::JSObject* prototype);

It's not helpful to pass the function for creating the structure instead of
calling it. There's really no reason to do it that way. This should take a
PassRefPtr<StructureID> instead, not take a prototype at all, and be renamed to
cacheDOMStructure.

r=me


More information about the webkit-reviews mailing list