Changeset 74760 in webkit
- Timestamp:
- Dec 29, 2010 2:20:51 PM (13 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r74759 r74760 1 2010-12-29 Martin Robinson <mrobinson@igalia.com> 2 3 Reviewed by Sam Weinig. 4 5 JSDataViewCustom.cpp gives the fastcall calling convention to functions called via C++ 6 https://bugs.webkit.org/show_bug.cgi?id=51722 7 8 Remove the JSC_HOST_CALL from methods that are called from C++. JSC_HOST_CALL gives 9 methods the fastcall calling convention, which leads to runtime errors when they are 10 called from C++. Also remove a bit of unnecessary code duplication. 11 12 No new tests. This is covered by fast/canvas/webgl/data-view-test.html. 13 14 * bindings/js/JSDataViewCustom.cpp: 15 (WebCore::getDataViewMember): Remove duplicated code. 16 (WebCore::JSDataView::getInt8): Remove JSC_HOST_CALL. 17 (WebCore::JSDataView::getUint8): Ditto. 18 (WebCore::JSDataView::getFloat32): Ditto. 19 (WebCore::JSDataView::getFloat64): Ditto. 20 (WebCore::setDataViewMember): Remove duplicated code. 21 (WebCore::JSDataView::setInt8): Remove JSC_HOST_CALL. 22 (WebCore::JSDataView::setUint8): Ditto. 23 1 24 2010-12-29 Dan Bernstein <mitz@apple.com> 2 25 -
trunk/WebCore/bindings/js/JSDataViewCustom.cpp
r72718 r74760 66 66 } 67 67 68 static JSValue getDataViewMember(ExecState* exec, DataView AccessType type)68 static JSValue getDataViewMember(ExecState* exec, DataView* imp, DataViewAccessType type) 69 69 { 70 JSValue thisValue = exec->hostThisValue();71 if (!thisValue.inherits(&JSDataView::s_info))72 return throwTypeError(exec);73 JSDataView* castedThis = static_cast<JSDataView*>(asObject(thisValue));74 DataView* imp = static_cast<DataView*>(castedThis->impl());75 70 if (exec->argumentCount() < 1) 76 71 return throwError(exec, createSyntaxError(exec, "Not enough arguments")); … … 108 103 } 109 104 110 JSValue JS C_HOST_CALL JSDataView::getInt8(ExecState* exec)105 JSValue JSDataView::getInt8(ExecState* exec) 111 106 { 112 return getDataViewMember(exec, AccessDataViewMemberAsInt8);107 return getDataViewMember(exec, static_cast<DataView*>(impl()), AccessDataViewMemberAsInt8); 113 108 } 114 109 115 JSValue JS C_HOST_CALL JSDataView::getUint8(ExecState* exec)110 JSValue JSDataView::getUint8(ExecState* exec) 116 111 { 117 return getDataViewMember(exec, AccessDataViewMemberAsUint8);112 return getDataViewMember(exec, static_cast<DataView*>(impl()), AccessDataViewMemberAsUint8); 118 113 } 119 114 120 JSValue JS C_HOST_CALL JSDataView::getFloat32(ExecState* exec)115 JSValue JSDataView::getFloat32(ExecState* exec) 121 116 { 122 return getDataViewMember(exec, AccessDataViewMemberAsFloat32);117 return getDataViewMember(exec, static_cast<DataView*>(impl()), AccessDataViewMemberAsFloat32); 123 118 } 124 119 125 JSValue JS C_HOST_CALL JSDataView::getFloat64(ExecState* exec)120 JSValue JSDataView::getFloat64(ExecState* exec) 126 121 { 127 return getDataViewMember(exec, AccessDataViewMemberAsFloat64);122 return getDataViewMember(exec, static_cast<DataView*>(impl()), AccessDataViewMemberAsFloat64); 128 123 } 129 124 130 static JSValue setDataViewMember(ExecState* exec, DataView AccessType type)125 static JSValue setDataViewMember(ExecState* exec, DataView* imp, DataViewAccessType type) 131 126 { 132 JSValue thisValue = exec->hostThisValue();133 if (!thisValue.inherits(&JSDataView::s_info))134 return throwTypeError(exec);135 JSDataView* castedThis = static_cast<JSDataView*>(asObject(thisValue));136 DataView* imp = static_cast<DataView*>(castedThis->impl());137 127 if (exec->argumentCount() < 2) 138 128 return throwError(exec, createSyntaxError(exec, "Not enough arguments")); … … 160 150 } 161 151 162 JSValue JS C_HOST_CALL JSDataView::setInt8(ExecState* exec)152 JSValue JSDataView::setInt8(ExecState* exec) 163 153 { 164 return setDataViewMember(exec, AccessDataViewMemberAsInt8);154 return setDataViewMember(exec, static_cast<DataView*>(impl()), AccessDataViewMemberAsInt8); 165 155 } 166 156 167 JSValue JS C_HOST_CALL JSDataView::setUint8(ExecState* exec)157 JSValue JSDataView::setUint8(ExecState* exec) 168 158 { 169 return setDataViewMember(exec, AccessDataViewMemberAsUint8);159 return setDataViewMember(exec, static_cast<DataView*>(impl()), AccessDataViewMemberAsUint8); 170 160 } 171 161
Note: See TracChangeset
for help on using the changeset viewer.