reverted:
--- b/sw/source/filter/ww8/wrtw8nds.cxx
+++ a/sw/source/filter/ww8/wrtw8nds.cxx
@@ -119,7 +119,9 @@
static String lcl_getFieldCode( const IFieldmark* pFieldmark ) {
OSL_ENSURE(pFieldmark!=NULL, "where is my fieldmark???");
+ if ( !pFieldmark) {
+ return String();
+ } else if ( pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMTEXT ) ) {
- if ( pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMTEXT ) ) {
return String::CreateFromAscii(" FORMTEXT ");
} else if ( pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMDROPDOWN ) ) {
return String::CreateFromAscii(" FORMDROPDOWN ");
@@ -138,7 +140,9 @@
ww::eField lcl_getFieldId( const IFieldmark* pFieldmark ) {
OSL_ENSURE(pFieldmark!=NULL, "where is my fieldmark???");
+ if ( !pFieldmark ) {
+ return ww::eUNKNOWN;
+ } else if ( pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMTEXT ) ) {
- if ( pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMTEXT ) ) {
return ww::eFORMTEXT;
} else if ( pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMDROPDOWN ) ) {
return ww::eFORMDROPDOWN;
@@ -1826,11 +1830,11 @@
::sw::mark::IFieldmark const * const pFieldmark = pMarkAccess->getFieldmarkFor( aPosition );
OSL_ENSURE( pFieldmark, "Looks like this doc is broken...; where is the Fieldmark for the FIELDSTART??" );
+ if ( pFieldmark && pFieldmark->GetFieldname().equalsAscii( ODF_FORMTEXT ) )
- if ( pFieldmark->GetFieldname().equalsAscii( ODF_FORMTEXT ) )
AppendBookmark( pFieldmark->GetName(), false );
ww::eField eFieldId = lcl_getFieldId( pFieldmark );
String sCode = lcl_getFieldCode( pFieldmark );
+ if ( pFieldmark && pFieldmark->GetFieldname().equalsAscii( ODF_UNHANDLED ) )
- if ( pFieldmark->GetFieldname().equalsAscii( ODF_UNHANDLED ) )
{
IFieldmark::parameter_map_t::const_iterator it = pFieldmark->GetParameters()->find(
rtl::OUString::createFromAscii( ODF_ID_PARAM ) );
@@ -1851,13 +1855,13 @@
}
}
OutputField( NULL, eFieldId, sCode, WRITEFIELD_START | WRITEFIELD_CMD_START );
+ if ( pFieldmark && pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMTEXT ) )
- if ( pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMTEXT ) )
WriteFormData( *pFieldmark );
+ else if ( pFieldmark && pFieldmark->GetFieldname( ).equalsAscii( ODF_HYPERLINK ) )
- else if ( pFieldmark->GetFieldname( ).equalsAscii( ODF_HYPERLINK ) )
WriteHyperlinkData( *pFieldmark );
OutputField( NULL, lcl_getFieldId( pFieldmark ), String(), WRITEFIELD_CMD_END );
+ if ( pFieldmark && pFieldmark->GetFieldname().equalsAscii( ODF_UNHANDLED ) )
- if ( pFieldmark->GetFieldname().equalsAscii( ODF_UNHANDLED ) )
{
// Check for the presence of a linked OLE object
IFieldmark::parameter_map_t::const_iterator it = pFieldmark->GetParameters()->find(
@@ -1879,7 +1883,7 @@
OSL_ENSURE( pFieldmark, "Looks like this doc is broken...; where is the Fieldmark for the FIELDEND??" );
ww::eField eFieldId = lcl_getFieldId( pFieldmark );
+ if ( pFieldmark && pFieldmark->GetFieldname().equalsAscii( ODF_UNHANDLED ) )
- if ( pFieldmark->GetFieldname().equalsAscii( ODF_UNHANDLED ) )
{
IFieldmark::parameter_map_t::const_iterator it = pFieldmark->GetParameters()->find(
rtl::OUString::createFromAscii( ODF_ID_PARAM ) );
@@ -1892,7 +1896,7 @@
}
OutputField( NULL, eFieldId, String(), WRITEFIELD_CLOSE );
+ if ( pFieldmark && pFieldmark->GetFieldname().equalsAscii( ODF_FORMTEXT ) )
- if ( pFieldmark->GetFieldname().equalsAscii( ODF_FORMTEXT ) )
AppendBookmark( pFieldmark->GetName(), false );
}
else if ( ch == CH_TXT_ATR_FORMELEMENT )
@@ -1901,8 +1905,8 @@
::sw::mark::IFieldmark const * const pFieldmark = pMarkAccess->getFieldmarkFor( aPosition );
OSL_ENSURE( pFieldmark, "Looks like this doc is broken...; where is the Fieldmark for the FIELDSTART??" );
+ bool isDropdownOrCheckbox = pFieldmark && (pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMDROPDOWN ) ||
+ pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMCHECKBOX ));
- bool isDropdownOrCheckbox = pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMDROPDOWN ) ||
- pFieldmark->GetFieldname( ).equalsAscii( ODF_FORMCHECKBOX );
if ( isDropdownOrCheckbox )
AppendBookmark( pFieldmark->GetName(), 0 );