Index: Source/core/editing/EditorCommand.cpp |
diff --git a/Source/core/editing/EditorCommand.cpp b/Source/core/editing/EditorCommand.cpp |
index 56bbf4d5c94c3ef1e8cb3065456431a3e2daceee..55a45a821997c6d3657c27a30a0de851787f6fff 100644 |
--- a/Source/core/editing/EditorCommand.cpp |
+++ b/Source/core/editing/EditorCommand.cpp |
@@ -135,23 +135,24 @@ static bool executeApplyStyle(LocalFrame& frame, EditorCommandSource source, Edi |
// FIXME: executeToggleStyleInList does not handle complicated cases such as <b><u>hello</u>world</b> properly. |
// This function must use Editor::selectionHasStyle to determine the current style but we cannot fix this |
// until https://bugs.webkit.org/show_bug.cgi?id=27818 is resolved. |
-static bool executeToggleStyleInList(LocalFrame& frame, EditorCommandSource source, EditAction action, CSSPropertyID propertyID, CSSValue* value) |
+static bool executeToggleStyleInList(LocalFrame& frame, EditorCommandSource source, EditAction action, CSSPropertyID propertyID, CSSValue value) |
{ |
RefPtrWillBeRawPtr<EditingStyle> selectionStyle = EditingStyle::styleAtSelectionStart(frame.selection().selection()); |
if (!selectionStyle || !selectionStyle->style()) |
return false; |
- RefPtrWillBeRawPtr<CSSValue> selectedCSSValue = selectionStyle->style()->getPropertyCSSValue(propertyID); |
+ NullableCSSValue selectedCSSValue = selectionStyle->style()->getPropertyCSSValue(propertyID); |
String newStyle("none"); |
- if (selectedCSSValue->isValueList()) { |
- RefPtrWillBeRawPtr<CSSValueList> selectedCSSValueList = toCSSValueList(selectedCSSValue.get()); |
+ if (selectedCSSValue && selectedCSSValue->isValueList()) { |
+ RefPtrWillBeRawPtr<CSSValueList> selectedCSSValueList = toCSSValueList(selectedCSSValue); |
if (!selectedCSSValueList->removeAll(value)) |
selectedCSSValueList->append(value); |
if (selectedCSSValueList->length()) |
newStyle = selectedCSSValueList->cssText(); |
- } else if (selectedCSSValue->cssText() == "none") |
- newStyle = value->cssText(); |
+ } else if (selectedCSSValue && selectedCSSValue->cssText() == "none") { |
+ newStyle = value.cssText(); |
+ } |
// FIXME: We shouldn't be having to convert new style into text. We should have setPropertyCSSValue. |
RefPtrWillBeRawPtr<MutableStylePropertySet> newMutableStyle = MutableStylePropertySet::create(); |
@@ -1061,8 +1062,8 @@ static bool executeSetMark(LocalFrame& frame, Event*, EditorCommandSource, const |
static bool executeStrikethrough(LocalFrame& frame, Event*, EditorCommandSource source, const String&) |
{ |
- RefPtrWillBeRawPtr<CSSPrimitiveValue> lineThrough = CSSPrimitiveValue::createIdentifier(CSSValueLineThrough); |
- return executeToggleStyleInList(frame, source, EditActionUnderline, CSSPropertyWebkitTextDecorationsInEffect, lineThrough.get()); |
+ CSSValue lineThrough = CSSPrimitiveValue::createIdentifier(CSSValueLineThrough); |
+ return executeToggleStyleInList(frame, source, EditActionUnderline, CSSPropertyWebkitTextDecorationsInEffect, lineThrough); |
} |
static bool executeStyleWithCSS(LocalFrame& frame, Event*, EditorCommandSource, const String& value) |
@@ -1117,7 +1118,7 @@ static bool executeTranspose(LocalFrame& frame, Event*, EditorCommandSource, con |
static bool executeUnderline(LocalFrame& frame, Event*, EditorCommandSource source, const String&) |
{ |
RefPtrWillBeRawPtr<CSSPrimitiveValue> underline = CSSPrimitiveValue::createIdentifier(CSSValueUnderline); |
- return executeToggleStyleInList(frame, source, EditActionUnderline, CSSPropertyWebkitTextDecorationsInEffect, underline.get()); |
+ return executeToggleStyleInList(frame, source, EditActionUnderline, CSSPropertyWebkitTextDecorationsInEffect, CSSValue(*underline)); |
} |
static bool executeUndo(LocalFrame& frame, Event*, EditorCommandSource, const String&) |