Apache OpenOffice (AOO) Bugzilla – Issue 113181
sw: && || ambiguity in docfld.cxx
Last modified: 2017-05-20 10:22:47 UTC
in docfld.cxx we have... if( bIsDBMgr && rDoc.GetNewDBMgr()->OpenDataSource( aDBData.sDataSource, aDBData.sCommand )&& GETFLD_ALL == eGetMode || ( GETFLD_CALC & eGetMode && ((SwDBNextSetField*)pFld)->IsCondValid() )) pFormel = &pFld->GetPar1(); precedence rules for this results in ... if ( ( bIsDBMgr && rDoc.GetNewDBMgr()->OpenDataSource(aDBData.sDataSource, aDBData.sCommand) && GETFLD_ALL == eGetMode ) || (GETFLD_CALC & eGetMode && ((SwDBNumSetField*)pFld)->IsCondValid()) ) { pFormel = &pFld->GetPar1(); } maybe that's what we intended, but there's a chance we intended... if ( (bIsDBMgr && rDoc.GetNewDBMgr()->OpenDataSource(aDBData.sDataSource, aDBData.sCommand)) && (GETFLD_ALL == eGetMode || (GETFLD_CALC & eGetMode && ((SwDBNumSetField*)pFld)->IsCondValid())) ) { pFormel = &pFld->GetPar1(); }
Created attachment 70640 [details] version 1, keep logic silence gcc warnings
Created attachment 70641 [details] version 2, change logic, small possibility that is what was intended
.
the conditional is indeed buggy. fixed in cws sw34bf01 http://hg.services.openoffice.org/hg/cws/sw34bf01/rev/cf200e1ce857
please verify
verified