winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
March 2021
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
1163 discussions
Start a n
N
ew thread
Robert Wilhelm : vbscript: Implement Split.
by Alexandre Julliard
23 Mar '21
23 Mar '21
Module: wine Branch: oldstable Commit: 740aac9a38f15acf43a70959ce7482c8fc87bbcf URL:
https://source.winehq.org/git/wine.git/?a=commit;h=740aac9a38f15acf43a70959…
Author: Robert Wilhelm <robert.wilhelm(a)gmx.net> Date: Mon Aug 24 11:43:57 2020 +0200 vbscript: Implement Split. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=47570
Signed-off-by: Robert Wilhelm <robert.wilhelm(a)gmx.net> Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit d50f5f67c7b143ebc92d206ab78110da5a3efc4e) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/vbscript/global.c | 149 +++++++++++++++++++++++++++++++++++++++++++- dlls/vbscript/tests/api.vbs | 65 +++++++++++++++++++ 2 files changed, 211 insertions(+), 3 deletions(-) diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c index a4442960d9e..6214a6575fc 100644 --- a/dlls/vbscript/global.c +++ b/dlls/vbscript/global.c @@ -2272,10 +2272,153 @@ static HRESULT Global_Join(BuiltinDisp *This, VARIANT *arg, unsigned args_cnt, V return E_NOTIMPL; } -static HRESULT Global_Split(BuiltinDisp *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) +static HRESULT Global_Split(BuiltinDisp *This, VARIANT *args, unsigned args_cnt, VARIANT *res) { - FIXME("\n"); - return E_NOTIMPL; + BSTR str, string, delimeter = NULL; + int count, max, mode, len, start, end, ret, delimeterlen = 1; + int i,*indices = NULL, indices_max = 8; + SAFEARRAYBOUND bounds; + SAFEARRAY *sa = NULL; + VARIANT *data, var; + HRESULT hres = S_OK; + + TRACE("%s %u...\n", debugstr_variant(args), args_cnt); + + assert(1 <= args_cnt && args_cnt <= 4); + + if(V_VT(args) == VT_NULL || (args_cnt > 1 && V_VT(args+1) == VT_NULL) || (args_cnt > 2 && V_VT(args+2) == VT_NULL) + || (args_cnt == 4 && V_VT(args+3) == VT_NULL)) + return MAKE_VBSERROR(VBSE_ILLEGAL_NULL_USE); + + if(V_VT(args) != VT_BSTR) { + hres = to_string(args, &string); + if(FAILED(hres)) + return hres; + }else { + string = V_BSTR(args); + } + + if(args_cnt > 1) { + if(V_VT(args+1) != VT_BSTR) { + hres = to_string(args+1, &delimeter); + if(FAILED(hres)) + goto error; + }else { + delimeter = V_BSTR(args+1); + } + delimeterlen = SysStringLen(delimeter); + } + + if(args_cnt > 2) { + hres = to_int(args+2, &max); + if(FAILED(hres)) + goto error; + if (max < -1) { + hres = MAKE_VBSERROR(VBSE_ILLEGAL_FUNC_CALL); + goto error; + } + }else { + max = -1; + } + + if(args_cnt == 4) { + hres = to_int(args+3, &mode); + if(FAILED(hres)) + goto error; + if (mode != 0 && mode != 1) { + hres = MAKE_VBSERROR(VBSE_ILLEGAL_FUNC_CALL); + goto error; + } + }else { + mode = 0; + } + + start = 0; + + len = SysStringLen(string); + count = 0; + + indices = heap_alloc( indices_max * sizeof(int)); + if(!indices) { + hres = E_OUTOFMEMORY; + goto error; + } + + while(1) { + ret = -1; + if (delimeterlen) { + ret = FindStringOrdinal(FIND_FROMSTART, string + start, len - start, + delimeter ? delimeter : L" ", delimeterlen, mode); + } + + if (ret == -1) { + end = len; + }else { + end = start + ret; + } + + if (count == indices_max) { + indices_max *= 2; + indices = heap_realloc( indices, indices_max * sizeof(int)); + if(!indices) { + hres = E_OUTOFMEMORY; + goto error; + } + } + indices[count++] = end; + + if (ret == -1 || count == max) break; + start = start + ret + delimeterlen; + if (start > len) break; + } + + bounds.lLbound = 0; + bounds.cElements = count; + sa = SafeArrayCreate( VT_VARIANT, 1, &bounds); + if (!sa) { + hres = E_OUTOFMEMORY; + goto error; + } + hres = SafeArrayAccessData(sa, (void**)&data); + if(FAILED(hres)) { + SafeArrayDestroy(sa); + goto error; + } + + start = 0; + for (i = 0; i < count; i++) { + str = SysAllocStringLen(string + start, indices[i] - start); + if (!str) { + hres = E_OUTOFMEMORY; + break; + } + V_VT(&var) = VT_BSTR; + V_BSTR(&var) = str; + + hres = VariantCopyInd(data+i, &var); + if(FAILED(hres)) { + SafeArrayUnaccessData(sa); + SafeArrayDestroy(sa); + goto error; + } + start = indices[i]+delimeterlen; + } + SafeArrayUnaccessData(sa); + +error: + if(SUCCEEDED(hres) && res) { + V_VT(res) = VT_ARRAY|VT_VARIANT; + V_ARRAY(res) = sa; + }else { + if (sa) SafeArrayDestroy(sa); + } + + heap_free(indices); + if(V_VT(args) != VT_BSTR) + SysFreeString(string); + if(V_VT(args+1) != VT_BSTR) + SysFreeString(delimeter); + return hres; } static HRESULT Global_Replace(BuiltinDisp *This, VARIANT *args, unsigned args_cnt, VARIANT *res) diff --git a/dlls/vbscript/tests/api.vbs b/dlls/vbscript/tests/api.vbs index 0a65984483f..efe8643166b 100644 --- a/dlls/vbscript/tests/api.vbs +++ b/dlls/vbscript/tests/api.vbs @@ -497,6 +497,71 @@ TestLCase 0.123, doubleAsString(0.123) TestLCase Empty, "" Call ok(getVT(LCase(Null)) = "VT_NULL", "getVT(LCase(Null)) = " & getVT(LCase(Null))) +x=Split("abc") +Call ok(x(0) = "abc", "Split(""abc"")(0)=" & x(0)) +x = Split("abc def") +Call ok(x(0) = "abc", "Split(""abc def"")(0)=" & x(0)) +Call ok(x(1) = "def", "Split(""abc def"")(1)=" & x(1)) +x = Split("abc def ghi") +Call ok(x(0) = "abc", "Split(""abc def ghi"")(0)=" & x(0)) +Call ok(x(1) = "def", "Split(""abc def ghi"")(1)=" & x(1)) +Call ok(x(2) = "ghi", "Split(""abc def ghi"")(2)=" & x(2)) +x = Split("abc def","") +Call ok(x(0) = "abc def", "Split(""abc def"","""")(0)=" & x(0)) +x = Split("abc-def","-") +Call ok(x(0) = "abc", "Split(""abc-def"",""-"")(0)=" & x(0)) +Call ok(x(1) = "def", "Split(""abc-def"",""-"")(1)=" & x(1)) +x = Split("abc--def","-") +Call ok(x(0) = "abc", "Split(""abc--def"",""-"")(0)=" & x(0)) +Call ok(x(1) = "", "Split(""abc--def"",""-"")(1)=" & x(1)) +Call ok(x(2) = "def", "Split(""abc--def"",""-"")(2)=" & x(2)) +x = Split("abcdefghi","def") +Call ok(x(0) = "abc", "Split(""abcdefghi"",""def"")(0)=" & x(0)) +Call ok(x(1) = "ghi", "Split(""abcdefghi"",""def"")(1)=" & x(1)) +x = Split("12345",3) +Call ok(x(0) = "12", "Split(""12345"",3)(0)=" & x(0)) +Call ok(x(1) = "45", "Split(""12345"",3)(1)=" & x(1)) +x = Split("12345",5) +Call ok(x(0) = "1234", "Split(""12345"",5)(0)=" & x(0)) +Call ok(x(1) = "", "Split(""12345"",5)(1)=" & x(1)) +x = Split("12345",12) +Call ok(x(0) = "", "Split(""12345"",12)(0)=" & x(0)) +Call ok(x(1) = "345", "Split(""12345"",12)(1)=" & x(1)) +x = Split("abc-def-ghi","-") +Call ok(UBound(x) = 2, "UBound(Split(""abc-def-ghi"",""-""))=" & UBound(x)) +x = Split("a b c d e f g h i j k l m n o p q") +Call ok(UBound(x) = 16, "UBound(Split(""a b c d e f g h i j k l m n o p q""))=" & UBound(x)) +x = Split("abc-def-ghi","-",2) +Call ok(UBound(x) = 1, "UBound(Split(""abc-def-ghi"",""-"",2))=" & UBound(x)) +x = Split("abc-def-ghi","-",4) +Call ok(UBound(x) = 2, "UBound(Split(""abc-def-ghi"",""-"",4))=" & UBound(x)) +x = Split("abc-def-ghi","-",-1) +Call ok(UBound(x) = 2, "UBound(Split(""abc-def-ghi"",""-"",-1))=" & UBound(x)) +x = Split("abc-def-ghi","-",-1) +Call ok(UBound(x) = 2, "UBound(Split(""abc-def-ghi"",""-"",-42))=" & UBound(x)) +x = Split("abcZdefZghi","Z",3,0) +Call ok(UBound(x) = 2, "UBound(Split(""abcZdefZghi"",""Z"",3,0))=" & UBound(x)) +x = Split("abcZdefZghi","z",3,0) +Call ok(UBound(x) = 0, "UBound(Split(""abcZdefZghi"",""z"",3,0))=" & UBound(x)) +x = Split("abcZdefZghi","z",3,1) +Call ok(UBound(x) = 2, "UBound(Split(""abcZdefZghi"",""z"",3,1))=" & UBound(x)) + +Sub testSplitError(arg1, arg2, arg3, arg4, error_num) + on error resume next + Dim x + + Call Err.clear() + x = Split(arg1, arg2, arg3, arg4) + Call ok(Err.number = error_num, "Err.number = " & Err.number) +End Sub + +call testSplitError("abc-def-ghi", "-", -1, 2, 5) +call testSplitError("abc-def-ghi", "-", -42, 0, 5) +call testSplitError(null, "-", -1, 0, 94) +call testSplitError("abc-def-ghi", null, -1, 0, 94) +call testSplitError("abc-def-ghi", "-", null, 0, 94) +call testSplitError("abc-def-ghi", "-", -1, null, 94) + Sub TestStrComp(str_left, str_right, mode, ex) x = StrComp(str_left, str_right, mode) Call ok(x = ex, "StrComp(" & str_left & ", " & str_right & ", " & mode & ") = " & x & " expected " & ex)
1
0
0
0
Dmitry Timoshkov : ieframe: Implement IOleObject::Advise().
by Alexandre Julliard
23 Mar '21
23 Mar '21
Module: wine Branch: oldstable Commit: 3d11a967a590c2e9bc36d6183e931541edbd11b9 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=3d11a967a590c2e9bc36d618…
Author: Dmitry Timoshkov <dmitry(a)baikal.ru> Date: Wed Jul 29 16:57:16 2020 +0800 ieframe: Implement IOleObject::Advise(). Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 0b941ea871482924c1e356b70fe3975fb984fd44) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/ieframe/ieframe.h | 2 ++ dlls/ieframe/oleobject.c | 23 ++++++++++++++++++++--- dlls/ieframe/webbrowser.c | 3 +++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/dlls/ieframe/ieframe.h b/dlls/ieframe/ieframe.h index 8d238863be2..329cea2f7ca 100644 --- a/dlls/ieframe/ieframe.h +++ b/dlls/ieframe/ieframe.h @@ -199,6 +199,8 @@ struct WebBrowser { DWORD sink_aspects; DWORD sink_flags; + IOleAdviseHolder *advise_holder; + /* window context */ HWND frame_hwnd; diff --git a/dlls/ieframe/oleobject.c b/dlls/ieframe/oleobject.c index 5c49845aa7e..133e757eef7 100644 --- a/dlls/ieframe/oleobject.c +++ b/dlls/ieframe/oleobject.c @@ -757,11 +757,28 @@ static HRESULT WINAPI OleObject_GetExtent(IOleObject *iface, DWORD dwDrawAspect, } static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, - DWORD* pdwConnection) + DWORD *pdwConnection) { WebBrowser *This = impl_from_IOleObject(iface); - FIXME("(%p)->(%p, %p)\n", This, pAdvSink, pdwConnection); - return E_NOTIMPL; + HRESULT hr = S_OK; + + TRACE("(%p)->(%p, %p)\n", This, pAdvSink, pdwConnection); + + if(!pdwConnection) + return E_INVALIDARG; + + *pdwConnection = 0; + + if(!pAdvSink) + return E_INVALIDARG; + + if(!This->advise_holder) + hr = CreateOleAdviseHolder(&This->advise_holder); + + if(hr == S_OK) + hr = IOleAdviseHolder_Advise(This->advise_holder, pAdvSink, pdwConnection); + + return hr; } static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection) diff --git a/dlls/ieframe/webbrowser.c b/dlls/ieframe/webbrowser.c index 1e50512e427..07d5889798a 100644 --- a/dlls/ieframe/webbrowser.c +++ b/dlls/ieframe/webbrowser.c @@ -170,6 +170,9 @@ static ULONG WINAPI WebBrowser_Release(IUnknown *iface) if(This->sink) IAdviseSink_Release(This->sink); + if(This->advise_holder) + IOleAdviseHolder_Release(This->advise_holder); + if(This->doc_host.document) IUnknown_Release(This->doc_host.document);
1
0
0
0
Jacek Caban : ieframe: Use nameless unions.
by Alexandre Julliard
22 Mar '21
22 Mar '21
Module: wine Branch: master Commit: d1764a45cfd12f8c5699fd7428cf90f90a2d31ef URL:
https://source.winehq.org/git/wine.git/?a=commit;h=d1764a45cfd12f8c5699fd74…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Mon Mar 22 18:31:46 2021 +0100 ieframe: Use nameless unions. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ieframe/Makefile.in | 1 - dlls/ieframe/intshcut.c | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/dlls/ieframe/Makefile.in b/dlls/ieframe/Makefile.in index 1ddb02598cc..61037143f2e 100644 --- a/dlls/ieframe/Makefile.in +++ b/dlls/ieframe/Makefile.in @@ -1,7 +1,6 @@ MODULE = ieframe.dll IMPORTLIB = ieframe IMPORTS = uuid urlmon shell32 comctl32 shlwapi oleaut32 ole32 user32 gdi32 advapi32 -EXTRADEFS = -DWINE_NO_NAMELESS_EXTENSION EXTRADLLFLAGS = -mno-cygwin diff --git a/dlls/ieframe/intshcut.c b/dlls/ieframe/intshcut.c index 6c64eb5b3b2..4a0e870ca09 100644 --- a/dlls/ieframe/intshcut.c +++ b/dlls/ieframe/intshcut.c @@ -509,7 +509,7 @@ static HRESULT WINAPI PersistFile_Load(IPersistFile *pFile, LPCOLESTR pszFileNam ps.ulKind = PRSPEC_PROPID; ps.u.propid = PID_IS_ICONFILE; pv.vt = VT_LPWSTR; - pv.u.pwszVal = iconfile; + pv.pwszVal = iconfile; hr = IPropertyStorage_WriteMultiple(pPropStg, 1, &ps, &pv, 0); if (FAILED(hr)) TRACE("Failed to store the iconfile to our property storage. hr = 0x%x\n", hr); @@ -525,7 +525,7 @@ static HRESULT WINAPI PersistFile_Load(IPersistFile *pFile, LPCOLESTR pszFileNam ps.ulKind = PRSPEC_PROPID; ps.u.propid = PID_IS_ICONINDEX; pv.vt = VT_I4; - pv.u.iVal = iconindex; + pv.iVal = iconindex; hr = IPropertyStorage_WriteMultiple(pPropStg, 1, &ps, &pv, 0); if (FAILED(hr)) TRACE("Failed to store the iconindex to our property storage. hr = 0x%x\n", hr); @@ -606,18 +606,18 @@ static HRESULT WINAPI PersistFile_Save(IPersistFile *pFile, LPCOLESTR pszFileNam else if (SUCCEEDED(hr)) { char indexString[50]; - len = WideCharToMultiByte(CP_UTF8, 0, pvread[0].u.pwszVal, -1, NULL, 0, 0, 0); + len = WideCharToMultiByte(CP_UTF8, 0, pvread[0].pwszVal, -1, NULL, 0, 0, 0); iconfile = heap_alloc(len); if (iconfile != NULL) { - WideCharToMultiByte(CP_UTF8, 0, pvread[0].u.pwszVal, -1, iconfile, len, 0, 0); + WideCharToMultiByte(CP_UTF8, 0, pvread[0].pwszVal, -1, iconfile, len, 0, 0); WriteFile(file, str_ICONFILE, lstrlenA(str_ICONFILE), &bytesWritten, NULL); WriteFile(file, iconfile, lstrlenA(iconfile), &bytesWritten, NULL); WriteFile(file, str_eol, lstrlenA(str_eol), &bytesWritten, NULL); heap_free(iconfile); } - sprintf(indexString, "ICONINDEX=%d", pvread[1].u.iVal); + sprintf(indexString, "ICONINDEX=%d", pvread[1].iVal); WriteFile(file, indexString, lstrlenA(indexString), &bytesWritten, NULL); WriteFile(file, str_eol, lstrlenA(str_eol), &bytesWritten, NULL);
1
0
0
0
Jacek Caban : include: Use nameless unions in dxva2api.idl helpers.
by Alexandre Julliard
22 Mar '21
22 Mar '21
Module: wine Branch: master Commit: ee587da9e5b1276e8908c4442c909650f0c7aacf URL:
https://source.winehq.org/git/wine.git/?a=commit;h=ee587da9e5b1276e8908c444…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Mon Mar 22 18:31:39 2021 +0100 include: Use nameless unions in dxva2api.idl helpers. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=50836
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mfplat/Makefile.in | 1 - dlls/mfplat/main.c | 62 ++++++++++++++++++++++---------------------- dlls/mfplat/mfplat_private.h | 14 +++++----- dlls/mfreadwrite/Makefile.in | 1 - dlls/mfreadwrite/reader.c | 10 +++---- include/dxva2api.idl | 13 +++++----- 6 files changed, 49 insertions(+), 52 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=ee587da9e5b1276e8908…
1
0
0
0
Jacek Caban : include: Don't default to WINE_NO_NAMELESS_EXTENSION for Wine build.
by Alexandre Julliard
22 Mar '21
22 Mar '21
Module: wine Branch: master Commit: b39b9eea39b19a8f91543b8350ed822d0fd9eef0 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=b39b9eea39b19a8f91543b83…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Mon Mar 22 18:31:25 2021 +0100 include: Don't default to WINE_NO_NAMELESS_EXTENSION for Wine build. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/amstream/tests/Makefile.in | 1 + dlls/combase/Makefile.in | 1 + dlls/d3d11/Makefile.in | 1 + dlls/devenum/Makefile.in | 1 + dlls/dsound/Makefile.in | 1 + dlls/dsound/tests/Makefile.in | 1 + dlls/dwrite/Makefile.in | 1 + dlls/dxdiagn/Makefile.in | 1 + dlls/gdiplus/Makefile.in | 1 + dlls/ieframe/Makefile.in | 1 + dlls/inetcomm/Makefile.in | 1 + dlls/inetcomm/tests/Makefile.in | 1 + dlls/iphlpapi/Makefile.in | 1 + dlls/mfplat/Makefile.in | 1 + dlls/mfreadwrite/Makefile.in | 1 + dlls/mmdevapi/Makefile.in | 1 + dlls/mmdevapi/tests/Makefile.in | 1 + dlls/msi/Makefile.in | 1 + dlls/ole32/Makefile.in | 2 +- dlls/propsys/Makefile.in | 1 + dlls/propsys/tests/Makefile.in | 1 + dlls/qcap/Makefile.in | 1 + dlls/qedit/Makefile.in | 1 + dlls/quartz/Makefile.in | 1 + dlls/sechost/Makefile.in | 1 + dlls/shell32/Makefile.in | 2 +- dlls/shell32/tests/Makefile.in | 1 + dlls/windowscodecs/Makefile.in | 1 + dlls/winealsa.drv/Makefile.in | 1 + dlls/winegstreamer/Makefile.in | 1 + dlls/winepulse.drv/Makefile.in | 1 + dlls/wininet/Makefile.in | 2 +- dlls/wininet/tests/Makefile.in | 1 + dlls/winmm/Makefile.in | 2 +- include/winnt.h | 2 +- programs/services/Makefile.in | 1 + programs/winecfg/Makefile.in | 1 + programs/winemenubuilder/Makefile.in | 1 + 38 files changed, 38 insertions(+), 5 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=b39b9eea39b19a8f9154…
1
0
0
0
Giovanni Mascellani : mfreadwrite: Unset seeking flag also on SourceStarted and SourceStopped.
by Alexandre Julliard
22 Mar '21
22 Mar '21
Module: wine Branch: master Commit: 1a7be75656003f2fe0dfdde609a6ebf7c8bc07cc URL:
https://source.winehq.org/git/wine.git/?a=commit;h=1a7be75656003f2fe0dfdde6…
Author: Giovanni Mascellani <gmascellani(a)codeweavers.com> Date: Mon Mar 22 15:59:49 2021 +0100 mfreadwrite: Unset seeking flag also on SourceStarted and SourceStopped. Signed-off-by: Giovanni Mascellani <gmascellani(a)codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mfreadwrite/reader.c | 2 ++ dlls/mfreadwrite/tests/mfplat.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/dlls/mfreadwrite/reader.c b/dlls/mfreadwrite/reader.c index cb4166265a0..7ce4674f940 100644 --- a/dlls/mfreadwrite/reader.c +++ b/dlls/mfreadwrite/reader.c @@ -550,9 +550,11 @@ static HRESULT source_reader_source_state_handler(struct source_reader *reader, { case MESourceStarted: reader->source_state = SOURCE_STATE_STARTED; + reader->flags &= ~SOURCE_READER_SEEKING; break; case MESourceStopped: reader->source_state = SOURCE_STATE_STOPPED; + reader->flags &= ~SOURCE_READER_SEEKING; break; case MESourceSeeked: reader->flags &= ~SOURCE_READER_SEEKING; diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c index c6191767164..25aa29ac272 100644 --- a/dlls/mfreadwrite/tests/mfplat.c +++ b/dlls/mfreadwrite/tests/mfplat.c @@ -902,6 +902,7 @@ static void test_source_reader_from_media_source(void) IMFAttributes *attributes; ULONG refcount; int i; + PROPVARIANT pos; source = create_test_source(); ok(!!source, "Failed to create test source.\n"); @@ -916,6 +917,11 @@ static void test_source_reader_from_media_source(void) hr = IMFSourceReader_SetStreamSelection(reader, 1, TRUE); ok(hr == S_OK, "Failed to select a stream, hr %#x.\n", hr); + pos.vt = VT_I8; + pos.hVal.QuadPart = 0; + hr = IMFSourceReader_SetCurrentPosition(reader, &GUID_NULL, &pos); + ok(hr == S_OK, "Failed to seek to beginning of stream, hr %#x.\n", hr); + hr = IMFSourceReader_ReadSample(reader, MF_SOURCE_READER_ANY_STREAM, 0, &actual_index, &stream_flags, ×tamp, &sample); ok(hr == S_OK, "Failed to get a sample, hr %#x.\n", hr);
1
0
0
0
Zebediah Figura : d3d11: Use wined3d_device_context_set_predication().
by Alexandre Julliard
22 Mar '21
22 Mar '21
Module: wine Branch: master Commit: ac0f240ac6f296d915916746c13f503e42fdd9a4 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=ac0f240ac6f296d915916746…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Mar 18 23:16:39 2021 -0500 d3d11: Use wined3d_device_context_set_predication(). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d11/device.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c index 4f59a2e41a5..6e0ae6d695b 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c @@ -879,7 +879,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_immediate_context_GetData(ID3D11DeviceCon static void STDMETHODCALLTYPE d3d11_immediate_context_SetPredication(ID3D11DeviceContext1 *iface, ID3D11Predicate *predicate, BOOL value) { - struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(iface); + struct d3d11_immediate_context *context = impl_from_ID3D11DeviceContext1(iface); struct d3d_query *query; TRACE("iface %p, predicate %p, value %#x.\n", iface, predicate, value); @@ -887,7 +887,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_SetPredication(ID3D11Devic query = unsafe_impl_from_ID3D11Query((ID3D11Query *)predicate); wined3d_mutex_lock(); - wined3d_device_set_predication(device->wined3d_device, query ? query->wined3d_query : NULL, value); + wined3d_device_context_set_predication(context->wined3d_context, query ? query->wined3d_query : NULL, value); wined3d_mutex_unlock(); } @@ -2637,7 +2637,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ClearState(ID3D11DeviceCon { wined3d_device_set_stream_output(device->wined3d_device, i, NULL, 0); } - wined3d_device_set_predication(device->wined3d_device, NULL, FALSE); + wined3d_device_context_set_predication(context->wined3d_context, NULL, FALSE); wined3d_mutex_unlock(); }
1
0
0
0
Zebediah Figura : wined3d: Introduce wined3d_device_context_set_predication().
by Alexandre Julliard
22 Mar '21
22 Mar '21
Module: wine Branch: master Commit: 8f32fbee9b17ba5d577eb1242e65dd1b50300dd5 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=8f32fbee9b17ba5d577eb124…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Mar 18 23:16:38 2021 -0500 wined3d: Introduce wined3d_device_context_set_predication(). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/device.c | 36 ++++++++++++++++++++++-------------- dlls/wined3d/wined3d.spec | 1 + include/wine/wined3d.h | 2 ++ 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 4c914f6adc1..5ff11f15b13 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -2404,6 +2404,27 @@ HRESULT CDECL wined3d_device_context_set_depth_stencil_view(struct wined3d_devic return WINED3D_OK; } +void CDECL wined3d_device_context_set_predication(struct wined3d_device_context *context, + struct wined3d_query *predicate, BOOL value) +{ + struct wined3d_state *state = context->state; + struct wined3d_query *prev; + + TRACE("context %p, predicate %p, value %#x.\n", context, predicate, value); + + prev = state->predicate; + if (predicate) + { + FIXME("Predicated rendering not implemented.\n"); + wined3d_query_incref(predicate); + } + state->predicate = predicate; + state->predicate_value = value; + wined3d_device_context_emit_set_predication(context, predicate, value); + if (prev) + wined3d_query_decref(prev); +} + void CDECL wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader) { TRACE("device %p, shader %p.\n", device, shader); @@ -4386,22 +4407,9 @@ HRESULT CDECL wined3d_device_clear(struct wined3d_device *device, DWORD rect_cou void CDECL wined3d_device_set_predication(struct wined3d_device *device, struct wined3d_query *predicate, BOOL value) { - struct wined3d_state *state = device->cs->c.state; - struct wined3d_query *prev; - TRACE("device %p, predicate %p, value %#x.\n", device, predicate, value); - prev = state->predicate; - if (predicate) - { - FIXME("Predicated rendering not implemented.\n"); - wined3d_query_incref(predicate); - } - state->predicate = predicate; - state->predicate_value = value; - wined3d_device_context_emit_set_predication(&device->cs->c, predicate, value); - if (prev) - wined3d_query_decref(prev); + wined3d_device_context_set_predication(&device->cs->c, predicate, value); } struct wined3d_query * CDECL wined3d_device_get_predication(struct wined3d_device *device, BOOL *value) diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec index ae4244bcbfd..762cbd97f7c 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -170,6 +170,7 @@ @ cdecl wined3d_device_context_set_constant_buffer(ptr long long ptr) @ cdecl wined3d_device_context_set_depth_stencil_state(ptr ptr long) @ cdecl wined3d_device_context_set_depth_stencil_view(ptr ptr) +@ cdecl wined3d_device_context_set_predication(ptr ptr long) @ cdecl wined3d_device_context_set_rasterizer_state(ptr ptr) @ cdecl wined3d_device_context_set_rendertarget_view(ptr long ptr long) @ cdecl wined3d_device_context_set_sampler(ptr long long ptr) diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h index 60625eda5c5..82cce3d0251 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h @@ -2563,6 +2563,8 @@ void __cdecl wined3d_device_context_set_depth_stencil_state(struct wined3d_devic struct wined3d_depth_stencil_state *depth_stencil_state, unsigned int stencil_ref); HRESULT __cdecl wined3d_device_context_set_depth_stencil_view(struct wined3d_device_context *context, struct wined3d_rendertarget_view *view); +void __cdecl wined3d_device_context_set_predication(struct wined3d_device_context *context, + struct wined3d_query *predicate, BOOL value); void __cdecl wined3d_device_context_set_rasterizer_state(struct wined3d_device_context *context, struct wined3d_rasterizer_state *rasterizer_state); HRESULT __cdecl wined3d_device_context_set_rendertarget_view(struct wined3d_device_context *context,
1
0
0
0
Zebediah Figura : wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_predication().
by Alexandre Julliard
22 Mar '21
22 Mar '21
Module: wine Branch: master Commit: 874ff93c0420db42fb0182f89314f0671645fee1 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=874ff93c0420db42fb0182f8…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Mar 18 23:16:37 2021 -0500 wined3d: Pass a wined3d_device_context to wined3d_cs_emit_set_predication(). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wined3d/cs.c | 7 ++++--- dlls/wined3d/device.c | 4 ++-- dlls/wined3d/wined3d_private.h | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c index 1611a9efd27..f7b682b627e 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -1123,16 +1123,17 @@ static void wined3d_cs_exec_set_predication(struct wined3d_cs *cs, const void *d cs->state.predicate_value = op->value; } -void wined3d_cs_emit_set_predication(struct wined3d_cs *cs, struct wined3d_query *predicate, BOOL value) +void wined3d_device_context_emit_set_predication(struct wined3d_device_context *context, + struct wined3d_query *predicate, BOOL value) { struct wined3d_cs_set_predication *op; - op = wined3d_device_context_require_space(&cs->c, sizeof(*op), WINED3D_CS_QUEUE_DEFAULT); + op = wined3d_device_context_require_space(context, sizeof(*op), WINED3D_CS_QUEUE_DEFAULT); op->opcode = WINED3D_CS_OP_SET_PREDICATION; op->predicate = predicate; op->value = value; - wined3d_device_context_submit(&cs->c, WINED3D_CS_QUEUE_DEFAULT); + wined3d_device_context_submit(context, WINED3D_CS_QUEUE_DEFAULT); } static void wined3d_cs_exec_set_viewports(struct wined3d_cs *cs, const void *data) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 267a8cae17d..4c914f6adc1 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1894,7 +1894,7 @@ void CDECL wined3d_device_set_state(struct wined3d_device *device, struct wined3 wined3d_cs_emit_set_index_buffer(device->cs, state->index_buffer, state->index_format, state->index_offset); - wined3d_cs_emit_set_predication(device->cs, state->predicate, state->predicate_value); + wined3d_device_context_emit_set_predication(context, state->predicate, state->predicate_value); for (i = 0; i < WINED3D_SHADER_TYPE_COUNT; ++i) { @@ -4399,7 +4399,7 @@ void CDECL wined3d_device_set_predication(struct wined3d_device *device, } state->predicate = predicate; state->predicate_value = value; - wined3d_cs_emit_set_predication(device->cs, predicate, value); + wined3d_device_context_emit_set_predication(&device->cs->c, predicate, value); if (prev) wined3d_query_decref(prev); } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 2541ca10c1e..0df57a91049 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -4755,8 +4755,6 @@ void wined3d_cs_emit_set_index_buffer(struct wined3d_cs *cs, struct wined3d_buff void wined3d_cs_emit_set_light(struct wined3d_cs *cs, const struct wined3d_light_info *light) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, unsigned int idx, BOOL enable) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_material(struct wined3d_cs *cs, const struct wined3d_material *material) DECLSPEC_HIDDEN; -void wined3d_cs_emit_set_predication(struct wined3d_cs *cs, - struct wined3d_query *predicate, BOOL value) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, enum wined3d_render_state state, DWORD value) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_sampler_state(struct wined3d_cs *cs, UINT sampler_idx, @@ -4805,6 +4803,8 @@ void wined3d_device_context_emit_set_depth_stencil_state(struct wined3d_device_c struct wined3d_depth_stencil_state *state, unsigned int stencil_ref) DECLSPEC_HIDDEN; void wined3d_device_context_emit_set_depth_stencil_view(struct wined3d_device_context *context, struct wined3d_rendertarget_view *view) DECLSPEC_HIDDEN; +void wined3d_device_context_emit_set_predication(struct wined3d_device_context *context, + struct wined3d_query *predicate, BOOL value) DECLSPEC_HIDDEN; void wined3d_device_context_emit_set_rasterizer_state(struct wined3d_device_context *context, struct wined3d_rasterizer_state *rasterizer_state) DECLSPEC_HIDDEN; void wined3d_device_context_emit_set_rendertarget_view(struct wined3d_device_context *context, unsigned int view_idx,
1
0
0
0
Zebediah Figura : d3d11: Use wined3d_device_context_set_depth_stencil_view().
by Alexandre Julliard
22 Mar '21
22 Mar '21
Module: wine Branch: master Commit: 9b52cef45bc4d858d988dc812beab3ef4f26343a URL:
https://source.winehq.org/git/wine.git/?a=commit;h=9b52cef45bc4d858d988dc81…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Mar 18 23:16:36 2021 -0500 d3d11: Use wined3d_device_context_set_depth_stencil_view(). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d11/device.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c index 4840c014b6c..4f59a2e41a5 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c @@ -935,7 +935,6 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetRenderTargets(ID3D11D ID3D11DepthStencilView *depth_stencil_view) { struct d3d11_immediate_context *context = impl_from_ID3D11DeviceContext1(iface); - struct d3d_device *device = device_from_immediate_ID3D11DeviceContext1(iface); struct d3d_depthstencil_view *dsv; unsigned int i; @@ -955,7 +954,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_OMSetRenderTargets(ID3D11D } dsv = unsafe_impl_from_ID3D11DepthStencilView(depth_stencil_view); - wined3d_device_set_depth_stencil_view(device->wined3d_device, dsv ? dsv->wined3d_view : NULL); + wined3d_device_context_set_depth_stencil_view(context->wined3d_context, dsv ? dsv->wined3d_view : NULL); wined3d_mutex_unlock(); } @@ -2623,7 +2622,7 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ClearState(ID3D11DeviceCon { wined3d_device_context_set_rendertarget_view(context->wined3d_context, i, NULL, FALSE); } - wined3d_device_set_depth_stencil_view(device->wined3d_device, NULL); + wined3d_device_context_set_depth_stencil_view(context->wined3d_context, NULL); for (i = 0; i < WINED3D_PIPELINE_COUNT; ++i) { for (j = 0; j < D3D11_PS_CS_UAV_REGISTER_COUNT; ++j)
1
0
0
0
← Newer
1
...
41
42
43
44
45
46
47
...
117
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Results per page:
10
25
50
100
200