From 2a34d8f44d3f45af7bf2394a93817a6ede75baba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Fri, 6 Mar 2020 10:11:48 +0000 Subject: [PATCH] rhbz#1810732 crash/assert inserting document with initial graphic Change-Id: Idae665c926856922a25a1228ed34f3cae96e4bdd --- sw/qa/extras/uiwriter/data/rhbz1810732.docx | Bin 0 -> 12107 bytes sw/qa/extras/uiwriter/uiwriter.cxx | 21 ++++++++++++++++++ writerfilter/source/dmapper/DomainMapper.cxx | 4 +++- .../source/dmapper/DomainMapper_Impl.cxx | 4 ++++ .../source/dmapper/DomainMapper_Impl.hxx | 1 + 5 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 sw/qa/extras/uiwriter/data/rhbz1810732.docx diff --git a/sw/qa/extras/uiwriter/data/rhbz1810732.docx b/sw/qa/extras/uiwriter/data/rhbz1810732.docx new file mode 100644 index 0000000000000000000000000000000000000000..2bf1d574d4911c4d042b56ae0333d3d088c5cb12 GIT binary patch literal 12107 zcmaia19+Xy)^=>$XwcY3)5`HnwfEu^Y8fW81dB15T&TXfA`8LSJFe5xxgX3*n+sy#1The89%yW%p1n zZ`4?-NO)Y&_o6pd3p59C)J4^GG5T)J%d<7 z0`fKJbnlcysrYu;vxiNPfq`ZFLz3*uF6h;(jrUvMAY>^uRpbtH+crUG*6VpC?co{{ zmbp$Uwl=4h+l-CKb12Fvw)KHcPXv{e7VJPPv@?cPP#Thj_-7LbGn!eVvPcD%t{GZ! zwr`9U1E8?y5vi!QhU%0p(|HN5W%bTii z9jYvMTVKm)fT8U`oDa2#cK5Sn;{MdtF}+TwH~czJ_1>r?G7lD-7l@z2EqHevf(_o8 zP6|cTy8Bl{b)y;5Q6_j0pf%O{%K(kC?OM}3Kz68+x=zi3kO0J zJbmWLVJTQ*V}2^@Kn}QdKxMXEwl8C80Adug=GJtu-ZgrD-eq0x;>u~GHU;&4#<{o( z&P`ugTfRmejLsEn5|f?+rPL$-o}hdhf*oJwy$M~SlusUWIu9<<1Ua$g=I7W!9D03N zZ-NNx3_0e}2u;dJ_l#4=W7p)UB9&bcV9rIpqbBTKpzH6*r3GK<@Ed+Go(&m#aDH=v zzZ0unOS>Zv5x|Sv-!gM^@~z6KKi6~(ipDa;on@Am zn6^;D0lFavKb|~AoYQXu#(n(3vrk*uKsUGFW|;j+rEx+6;jZG6_b^hu z1m+b!aC8fjSGRE>#bJJnAWc0C_9U2=xfk zjv1kTmQ9vnlp!w2e!lMj9FiR}jRY50=jz1y>Mb8nA#^H|wrnCiOP#rCh#_&fDI1Py z=Za3}C5s|dx(J6JHnu6VyeXgN)A1t!sis;|oE%AZFw6(OKGsA4`Kx$XxHBa@C$%cg zN+1oqD&AD|FFti%f5iG4B-iZ2>wLNqaR^VwO-hXMEt2+BJEf`ujiB{|bW&BI&i>>b z5h2Tqg@-s6z<|`On&Yrbygf#2E|5sRc!O0KfbF9JjyV*~{;0{;VL6^Hk7w-`6N!q_ zuAlyS#8!GFUA3IKj2y6AVU6IaRfK(QHroT686hY2Wso{fC5dI&y-wR{fFfTF74MC_f^lA!QHq9%Kjg@^q(2d3jwiU!{Jv{Pkl|q%Iqf8I7x4TmubD_*oHu1Dm?P=qQ#nG&eFX zK*}39kc>m+Bh_7cbQTnTWIul$YyVvO2RFq4<4EcqfuAr`z_&&BOXfc(eKBhDC7CO* zFD3B&F|{}{kFOI}GBYhx(R0XZJ1e4pFn%ZbdU;M|RJMy%h591(1IT{356zFL(1ass zc}f=QB3Zc;Ikb-vx6vHNtt@|wG~Hh%%owE0+bFX0%VvT z&J2TpQG)n07KotQ%W8JGd$3F(s=@3sRr1C(SR!Vv4%8 z+4P7;v9esVyN%;X5zqBn-yFd)U_5rPa>rsseSfm{-691e!ejzeiIqI7e^q!RH{QTz znQxW zD6$ZQAuh|*;@+wg@jOGDU1%4p{5J09RaYY8RYxqz(C41cn_X?2!(eDczOd@j!`5`z zWCaI1Q`7p@9j>wZAUh;vVgGmp&FOpfQ{}8RFCACmy2GQG9*jmR2&REBGs}S5uSTnv z+pO1259l2{8R(rB9pbj{D5G3Sy1OVxntts8>0hTEM@dRLwdV_)stZ>Sui(oTUj_B~ zYDOm)U5$a$Ey(IPDo?G`)!d@@7Y1o=aDUM7es>y6*;Zs43Drw+=TSB8B|ny}9_2Kc z#~%4gFtX74#Yz=_thS}Hy?;6hqbg40aXHAF9ORjTeYKdvH8URkf$jrRwc=Cz^>Xv# zc{+Oy?kS-ZM4e?XS2ElTw@I}<1os1+lfLQ>K4RjxOiu>Yoy?k}2qUp5BifUJDBYr8;q!m)Dy33ZxI--SeK{SHsFa9 z6v&eE#rFGFa4S<6tzLjT@#4N};c`Po@9ax3jlRM?*M@yYx_SoSq~)iBROjr^f={bV z>=n%Lt-DQjC1ZRkAMEp5kgfnP{Y`9(bOd8buPf?i*0xzotEc{vrOC@Ru~GFw%U3IB zCEJdNrWbBwb63y4H#jPWbt(!xR6Jw^L1gJ#S$$JSDUJ_}bg01H zsDp!RS-B6C&&iB6D*+DzALf_&?IGx#{l)SRhQyq`1*7WQ_DAT6LAWo1{7u|{_;~9h zm~1=R?iVKF^&DD%Q>qB_-kz&Q1LZin-q!0k_VgMIh$b?0&9wOX<^1Z=|9;OtWkp4E zpd>msfTdrYgkHv)12qzgQ93Nu8+cMv4jU0jLCU-5G+2p!ZCFe?Zx;u|*HqN17^9~0~8R@q~d?uZv3khFg4OM z{6{IUtg>je$bs}$3J~43g_17XqU6}caHSRUPe9lXr{0FXG^ z!HypUHjH*`T!QfMJ6&5#!PJ>7n`5!1r41sI^Qm_2V%EJ0t)%G~m=Xump~%#NW=GeW z;yPFA0V(ESKPU64dLt7{a>&X;I7>LDhl_hMWt9p_DL9OlVVw!MdJ7sHaYQnvN=j1# zz6tJ!sqP(!plMd3TT+o*vV?5f=BE&02(pq@{eZB%UwRn%VsW%!plq4&)4YO$8G@r& zSheYc<_&|mM_&-W^r;+Son57PYu%O?(X5_bxM_#)Q7=az1J?}?%o^D_@Jcx;>tZgg z7u<2XvQ)c3*&btSMTnP$*>_cV>+T&mbFXKb_&v4vprP8Bbu1kTIL8v!y0_=V6nX&vtGLW~0WF_8PKaafv;)p0Rjn zWv(C#kQ$jPGa1YMq*?dd?nEc?CcoNC+Of4s{!Z;5vMjM!Mq`JDZc-)D&k!2xTegwZ znHuF)5S|prbh!Cm~q#9P>JPJss zAQ7ZNk^S$_BO@UIlc!NH}w%dFxObJ{(+0c5q(n#Q|IPL=zGUE+gF)MI>~WiO7y9Ire5Ur7nY^q)Eqmb((NP#^Zf@r!b> zoFd!z_lCYSYH*UgV%lGzzXyCZ(35lBTYZs>@ZSO+<)8J1v9*9y=o4 z%YYk+uk>$m_eC^rS;tC~Y+dhZj;4G_H`xkwIp;k8=$0_CSD`zzy^+kT9PN5@N* zL>*3Y1>KHoD4)ORIdQ2n+B$7_(VddRZ_)1@0rs0%;z<9Gwh`*n58?4A9H%g9-{-cz z)KpG@$awhE0TK`~^jm^54m{@Ay3GxxPiBhM5|=4qx3-4JHT5^k!dO1JK3h%n=ZW)! zGCFp#veIA{9SA3JSC{O;s~OhxNVmDcRw9nGf(-~s!WKrWkt=0ECXT*5;XIsan^GJ+ zJgo>4QNRx12Fdwb+KP?73b)IK<`6cj8f2Fi`GuC{XL@#w zX}~M7;k!dc=@!GWa0E^0;T9|0II4D9J3IWEJ@(to*(NCa=277NU{M50|LL!)j<0N9 zi47PCCi632e>ti+DYG~K2i|f9CVSFy1B9Rw>nH;)!rg(C2wr71 zP$u(PnxaA!O8FVIOz%ZgZ+S)YF3y-Ek8m>xBQRtQIT?Npv-qEYdHk}L;pR{*yTBI{ zUk^KlJXG78(B_vhyiIqX-X!%jra7>g#9yOzKKrqEtVMOhTK+=A zfMRFNE#@^nv8p67i(~-Vs-OUgUfdZdw1@7yhD{lb$XsCre-3+Ux6;r4)h5-1rxSlA z%=hI=uZXI2`sS9Tw@Zj^eyFmnH30QPnO!qN=|EOiBb0{U` zErO!Ktuk`7s317)4x#mKcykBgwvDe0>B8m`mNA#G+I|%)sE6c&u$kK@ZulK(Qy<>G5>qR!S&Qk@XmZq0eE|KLAPDjQP zQxKtxIb!OCWNh&i(GK#fK{p(_UDZ}|MqO6iaEmbYU3AMuLo<4ZK3;*mUm8V*VwX6E zTHuGe6A4yNpEoz%Ni%Sp2;AZDk%=j97nQfo<^}tj?n54=7hCxDbO35iR$exsIx2MM zP#{)1+TSfll&G4usl;&yRkgQ)&-E-u1B21qV2W5!?y&M*$`xso(#Q}MRs}!Zd|qr} zCs0Vs_Qe1!KLP#dzs2&n`vM|9WkHT`BwGPJ?+ves&u(8~vl zuQ$`!6@ko05dD3aN@Ptw0)j!|-tS>uM=+Y$@GD$J$$(%0^DlWp*#e!_=Ej6^%}CZ= zAGdbxCKYj0b)RZWp=hf4F1Jpl{p1D76L1bO^QI+=*`#jD9}N~~qD4~x3mRW@aT{LT zB`WsAv}rOMUTCYWyQTRfr!_w)uN=pXOm5zt?<1);>t)Y>)k9=7?o^BUgA7RBc#`zm6qCk#zg;qUo?{!u^{9ZiH zkJC(a2C^-WxbL%9y`HXSbvi!VjCh>P>hQikZ(q*pc;9@#9YeuNh{BeQ`s|Q|m*;un z`wTl**wxFbyJ$#pp_kS{QWM3>5Co?wc}eVCl)Rq&t!N2k2NL8Up?jHFWP;bGUw9(< z@n%cT_qa8^4gs^Uj=NF?2usrAd$p06M&d|Y)VW*_8sm`3i4=$`#xJB5TFD4r2u>gT z4b;FEI^?HlBv9CRkfsva<}HIj0{LIvzu@MCzQB@`h*~KilG~ciacB4XFWN;ZnDB6%B?~eg~YCEViBRh*f7-jD->S z#grt@hD+k4ckBnfpM{~tb0YdFDQwnl^}GSlAW&j!(LP`*gbLdP%^X0_=+qbogMl;i z+%U}nm-Fc#b*}x0+x)YU+HI*@v)6$z169SosG5) z=9p%hWPVlVS_L&dEe;kc8kp^U_T}u9)gm!$#)kO{z(PX`4(PP014eA`p%Y(8}^K^UBgjLqO9{ChHPxa(ZMYxnG2K%Q* zBkJPbMob?9=mdg!4pR+-IY*5>taM97Tv570iM@lh0{tWeskdF!mW%Qh({L>YDpW~h zwF8L&u|GEXPS(t&SssDO5I~duxi@G=J>k~W^eS1JgNXoDgO)5q;On(;pJC)Csz{$N zHkMA8D?f0{v5>?BAwb|-G{|I7c*$~r1qS763Jhw04I3_>N25v| zVU-Z?5jeJuwsHRa6$*E6c=}gNLo_#iW2j#}kP(?on6YAJ&eW^-@$+HX%}dd0S89+E zP2?0-QbQ}-!t+4jg4axjrlW{yS>)y15V-2M&))nbMLouSOqvs|4Zy3x!lFVp#jMok zmn4LK=*~u>np}`(TIwgAn=Z&7MGp04%1kn@ulDr-GcwjI^TzEljQf$-JDRA8)VeM- zXB)6+&zUcfkjsX_QC+#TOarKehLj&-zkgXfdHSw{1a$@eva|Z0fZYnVYw#g}fU1fA zTYf?OXMVAFaJ4Y{EB$V3N!c%QptPS>>7HkP{?(+JCrS3xWs@rEBPu7WNk{-qB_+Rv zY)yNo7jSgEFe{M&`67vlM~Dd09%P#pPc>!N{q}5;(Z+LjNeE}!UH4<-sT{@yh4C%w z>*MltYs_hAM0E&h`b6lfWZ>&zu=n$Y3vumk0E|qd$;O8527RrC<>w(Md#d(n*w4 zKISz#?T}HLki0S4h`U<8$}^j$G6fvRH7s;aIy!k-pELp;Ll04m6uK@AwK{n9_Cn%F zF}oUUG(ESSJzmeU?37&X_Yp>g_fTpL=xk8rQVoxUSs;sDRe>9=f=4!Pdu#8jQqlx@ z{Mg$4saq^Wj67j2L#$Os?{1r%iJ)ig@M}~(keow3I8dp)?#ZZ`(;#B8?IDksFr22IZ6v43GfWwhrhwfK$MC?`^mZfPxqMcJG;?zD1+~uNO1JMTzpklzm>94$~+f$aWH#rZL zhY`znvjG7P-Ekp>EBKzn(w5#M?fYQ?jHGRVrj@?i@X<87deakscujFW<5zMFqEg68 zAx`6^tzKVq&4tKU={%Qqni5~wp6o>yFjWDF_Clg~P&lDIb~C~o@9}ugZ3Cg#;K+sG zXF^sp!tz`HhcB0EJ1ztJtZ#%My=%|ZJy*?8Z}kh@3O`n`tT&4FQJS#6syBqn*3=_b z5R*M~A0Up)Obj3|dra|zx(vU}HMGHiwYq|TW`SH z_GQ5rN1N`L|MMZa$4ieYJ2A{a3$)zXj8sTqlU436#Tz0Hof|3EMTm&>Ty)Ifh#zVL zo*$_nSD!eP9ZV3#8Y+Nvh2dL2l68n5@d^^SOdByqri%~_>3Ic`3>>jHWHM08!?if3+SKFxeebBZygG~ z!QVT4hyT{_KZk|{CC~;8mHY1_I%*U`{=dfy6+pBC1Sa=(L;rjCLHySZ0>^by#U_iH zIJ(DX)hEH09^TfUx~v_f6@~?y<8lFAb^%U(g|`^q8&BQLR!1i-5FyNpJQDhqP4hgU z)$2KyL*ANhI>olFTC+BOIoGP3borwPpysvuH*K*u%B`)QR~3h*w?s1Wr~E2AiU!lr zRUBYSij$tSve&zcgC)wp08NhqSa$Ma|U?l-z9$5#(!+l%t&3RA1n*=aId40 z(iiQlm}X?D{n@M&KL|y5;L4L{pE>F0&NOCP%I1%${DPWjjLJ0zBN(RLwtQ)pgVJE9 zn~J9O#IMjewqc%bF(n5|LajMC4pYEK6{D1HI%mN|J;sa|!aPC@wR~;)l++Ne)|64^ z+CD59NZiVs@B9$`DTZ`Cy~Oh=sn*ZwPTkO>WH%ikECSnpy*g!i0pK@WebIH_tdvjS zrZGlzZ@i)efhF6li9vl#$A>&7Ci6P%V);e_+d;}*XQ+|ABV^lv8PE*`p{IQ#e=_|c zhADOVvnbGyZ7G>m-bj7!@F3aJT6R2mQRIqhm6RIGdwa)%pd2LuzFf(tKs=*VG<;7= zd^4l$5(BiIgu?+Ht8Fa6jcS^B$Bt0v3rpJuk3E6A_P3KcdukH~C)P*MU_JA0XoeyX zStSa5!YK~#Mv8a?`-%XP&OvS{%+|&iU~`SupXqYx4w~N%pDdQZ^IDc1wZ0v8AfITe zmNl4Cvbj~3U#~!!pCIoJW^gi7+7nLc7Y<7q9+Oi^+P3tbek9-(N}-bvfc&D;#0_8T zAay$x$Mm{)<-{DVnZlA|=?5}X%xlO8|*lT{-hk(Mcr z1Zy;v_YY9Fm7Rhlr|Vjdk&e~H+9$00pk~a&X{rLj!ChmwR_$Saw8UaWu8$(^yn>rg zs}ePYRlGuNHwR~qKR!Gd4x%dp3^dy_ADu5dguE>B{==~toqLPLc@C?QHo?b2E@L5W&Q{7hFXZx0!D z1GCdahq|>F?z`+T<~hWTvJQ`Id|sS~t0(_7g?bao*J8L-n@YC+skXA2$K8rDTZZY! z+xh8jg zCg~G?>61_Uiq1&ioQCSrXLp1jcQ?8Ah+~gqv#D!;+}|I@W|UU2rQzh+W|AG-duEG| zpEyTaN?*x5HW(J2?q$4SyA@fcLqoPt;j%Egm#%cD^MH!o!fAUN;k79TAmCGCWeNlw zj24%VAF>jf_md$^k%$$F?G89NGjJ)vynMQb5=D>tiiFSQnHn)$kS}F!A znY81LJw>KsmgTE3am|3GYj>QU#Fn1?QismirMU?*%frnP{5D$TegxxBgw5nv-JFJ3 zcZi|InyovR-JGOX=#|08F}5%1=P+BTnUK5DSt^4kh>O-LYdBGsp0#wqLgRR0Z}1DW|sPmnq0CmrZq z@2}T&$c9{zHn=pr!fSm=)T-70Q#}?^yeSv*<_onvV8si&Jg!o_2 zeWCvDZUaYq2W!iBk2g$7S@#fOL7qK+66tLhEK@RHz_DcIKC13Z;?DaO+rSUBoNBb{ z>CoWDG9N$HEAhfdg!F^&aF|oBAZ3m53<8QH9yNy9E2P`1)v2g!0^$-+#cv9WMbY2& z0^r#)zW*c^r@w4m?2Ibn5la(upe!p}V;O=h8aN3H>Xxd4Rd&=kR%{+y zuG2Odf`e;a+`YLW-RD;B_EomY9kL0|Hrud;Y90t3wP<5CACOs{z>-5^>;0f!n~hvb z!Iw#y*>(MEc)WSK8{b}AOPP*nyVd2mNS+imGQN7b&|So6OXM~Lk!s9W0HXUMfsN3R z9OIM&2QC>tAiUK!FVnpdvxsV7)lpsFE88`=16nR)e)Yo2X1tfa;#-_XjGho-#8-C* zAsZ0|+-qGMJ79_O1$OsE|5@wAr#EsA5{i%UOo;z&0?PhRHuGQW-N4%JFYY}<{x9ym z?GpX1^oa|~rTU^-l5LlRf+9j>HLy|`)K_EC1b8L*2pG-dwO!1>9_vUSLv%zx62P4p z1R;})0EsSN7fb|q)28pmhKVSMohpry%_hNO`KZFFfNjpgb0F&52qL)_kw277HU3s| z>sicUn3;VjivGI9(o#56(9#!HE29pQ*>?_K*)1@L;`!kQJ>~107WO zLV*N(il6qZ3)@iWTa2r?_34a+F!?zt!X`^Z(V<~#!K@mS`^b6LZN@qhd#XjrPHvn_ zz5ypzVPNe^bpA(gV7jVe8fU9RFhiHlJu-rW6E!&lm6HoxU=LfovUF6h#)p7s_vVRg z`YJv87M;(r9mO)OGe1tAL6h-!E<(dAs?p)juri+|FTmgDhXfuVr1v&I+y7^PXb8Ot zBX8%fbQE1}jO?}E1Ef7cO5yF16mZs$iF3n=fqBh>K9_TPY*_G!@uq{{^fKD;x`&eD@7FT8jD% zCV|RI8m=H-8NYmz87K@%U}LPCM*|sSeESs2;I@s6NU}0Pyo|?L$oF}CGzaa+J+IIa zTFh-*hs7OmMFIr_v+m;W4A63uC3Ui`ygh*%+|y)-!}5x3oRug8T2GP;rAxq2*j%uO z%VF%G%dzA>sUMfDs5yic%$`XSlKHg-Ka%p=@@eHGT5?j>-{^|%zj&T@?dKxFH5=Q9 z#x^K;vB=tcb4kPRy9C_A?z#Q=+?DgO3Tt}a?tn8PL4!hBB*|y4RK)e4n_Z|h zJwDeP{A_95RofGHGdr_3mak_umWABKov4u5fS0IEnfK|-`GGI%^)`LdkniaP7z7RI z@1wuJpLu;h`up$p+d<$zfxjQfd(T9F8}VCLe;$zi6aBls{;pE|ZS8MT&|m1^Wu8Cb zzpHis-Z>5YKj6Pf@_(X#SDoG!y}u3rZ7ly7`fvK)pZMR!mv?RIZ;N|t?l1g*P^$iH z>35al-`z0!mTvxP>38YoPx$X7)Vq}Nw;iMX1OBJ5@n;jiZ#CZ8s=rMN_n#y97kBk1 z`1i#5@6%99_W$lp{zU)&)PGN|e;fA4-_U=j+CLlk{jv1#-bHL0BA|4WdHyG literal 0 HcmV?d00001 diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 0a646fd..93339d7 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -319,6 +319,7 @@ public: void testCreateDocxAnnotation(); void testTdf107976(); void testTdf108524(); + void testRhbz1810732(); #if HAVE_MORE_FONTS void testTableInSection(); void testTableInNestedSection(); @@ -527,6 +528,7 @@ public: CPPUNIT_TEST(testCreateDocxAnnotation); CPPUNIT_TEST(testTdf107976); CPPUNIT_TEST(testTdf108524); + CPPUNIT_TEST(testRhbz1810732); #if HAVE_MORE_FONTS CPPUNIT_TEST(testTableInSection); CPPUNIT_TEST(testTableInNestedSection); @@ -6041,6 +6043,25 @@ void SwUiWriterTest::testTdf113877_Standard_style() CPPUNIT_ASSERT_EQUAL(listId1, listId3); } +// just care that this does crash/assert +void SwUiWriterTest::testRhbz1810732() +{ + load(DATA_DIRECTORY, "tdf113877_blank.odt"); + + // set a page cursor into the end of the document + uno::Reference xModel(mxComponent, uno::UNO_QUERY); + uno::Reference xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY); + uno::Reference xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY); + xCursor->jumpToEndOfPage(); + + // insert the same document at current cursor position + { + const OUString insertFileid = m_directories.getURLFromSrc(DATA_DIRECTORY) + "rhbz1810732.docx"; + uno::Sequence aPropertyValues(comphelper::InitPropertySequence({ { "Name", uno::makeAny(insertFileid) } })); + dispatchCommand(mxComponent, ".uno:InsertDoc", aPropertyValues); + } +} + void SwUiWriterTest::testTdf108524() { createDoc("tdf108524.odt"); diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 81193ea..4edc51a 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -3744,7 +3744,9 @@ uno::Reference < lang::XMultiServiceFactory > const & DomainMapper::GetTextFacto uno::Reference< text::XTextRange > DomainMapper::GetCurrentTextRange() { - return m_pImpl->GetTopTextAppend()->getEnd(); + if (m_pImpl->HasTopText()) + return m_pImpl->GetTopTextAppend()->getEnd(); + return m_pImpl->m_xInsertTextRange; } OUString DomainMapper::getOrCreateCharStyle( PropertyValueVector_t& rCharProperties, bool bAlwaysCreate ) diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 15c6ae130ecd..743c07de9959 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -667,6 +667,10 @@ PropertyMapPtr DomainMapper_Impl::GetTopContextOfType(ContextType eId) return pRet; } +bool DomainMapper_Impl::HasTopText() const +{ + return !m_aTextAppendStack.empty(); +} uno::Reference< text::XTextAppend > const & DomainMapper_Impl::GetTopTextAppend() { diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx index 456ab3df371e..fac34be0adac 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -684,6 +684,7 @@ public: } PropertyMapPtr GetTopContextOfType(ContextType eId); + bool HasTopText() const; css::uno::Reference const & GetTopTextAppend(); FieldContextPtr const & GetTopFieldContext(); -- 2.24.1