Commit Graph

137 Commits

Author SHA1 Message Date
Alexandre Julliard eadb037ba1 rpcrt4: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-19 11:22:47 +02:00
Zebediah Figura 9271efc0c7 rpcrt4: Use a FINALLY block to clean up in do_ndr_client_call().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-21 18:08:37 +02:00
Zebediah Figura ae5f2a8f84 rpcrt4: Handle exceptions in a larger portion of NdrClientCall().
Most notably in NdrProxyInitialize().

This patch and the next bring the scope of exception handling roughly in line
with -Os stubs.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36981
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-21 18:08:37 +02:00
Zebediah Figura 40b6adf8f0 rpcrt4: Factor out get_handle_desc_size().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-21 18:08:37 +02:00
Alexandre Julliard d5a372abbb include: Move inline assembly definitions to a new wine/asm.h header.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 13:45:07 +02:00
Louis Lenders e54224e88c rpcrt4: Add NdrServerCallAll stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47131
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-07 09:17:42 -05:00
Jacek Caban b6c48de699 rpcrt4: Fix context handle return value marshaling.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-25 23:09:07 +01:00
Zebediah Figura be25106503 rpcrt4: Also clear base-type [out] pointers in client_do_args().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 13:55:22 +02:00
Zebediah Figura 43275fb178 rpcrt4: Avoid clearing a NULL output parameter in client_do_args().
Avoids an unhandled exception. Passing NULL as a ref pointer (which a
top-level [out] parameter necessarily is) is illegal, but this will be caught
in the CALCSIZE pass. This matches midl/widl behaviour in the -Os case.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 09:48:37 +02:00
Zebediah Figura 5be461cd71 rpcrt4: Correctly handle simple ref pointers in calc_arg_size().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 09:48:35 +02:00
Zebediah Figura be9f5f4aaf rpcrt4: Handle non-ref pointers in calc_arg_size().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-12 09:48:33 +02:00
Zebediah Figura 69cd52875a rpcrt4: Use publicly defined NDR constants.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-13 09:53:07 +02:00
Huw Davies b2667416c2 rpcrt4: Don't free the argument if the freer was called, unless it's a simple ref.
In the simple reference case the freer will not see the top-level
pointer, so we need to free that here.

This fixes a double-free caused by commit 614afcefa3.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-08 20:21:36 +01:00
Alexandre Julliard aea6d2371d rpcrt4: Mark function that are only called from assembly as hidden.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-25 11:48:54 +02:00
Nikolay Sivov 858064abf6 rpcrt4: Added NdrAsyncServerCall stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 12:02:05 +09:00
Piotr Caban 614afcefa3 rpcrt4: Free server side arguments with MustFree flag first so other arguments may be used to determine its size.
This also fixes a leak when both MustFree and ServerAllocSize flags are
specified.
2015-09-08 14:49:21 +09:00
André Hentschel ef783d62cc rpcrt4: Add ARM support. 2015-08-17 16:59:23 +09:00
Huw Davies 173ae68f0b rpcrt4: Procedures containing a range within a conformance have a larger correlation descriptor. 2015-07-13 22:11:42 +09:00
Huw Davies a8f46c78ff rpcrt4: Add missing calls to NdrCorrelationInitialize/Free. 2015-07-13 22:11:27 +09:00
Josh DuBois 1f34f193b6 rpcrt4: Avoid movs between rcx, rdx and xmm registers.
Apple's version of as chokes on movs between rcx and rdx and the xmm
registers.
2015-05-06 20:45:41 +09:00
Nikolay Sivov ecda8fd501 rpcrt4: Added inline helper to test for Oicf stub descriptions. 2015-03-06 20:40:44 +09:00
Nikolay Sivov 2b40f9b01e rpcrt4: Implement RPC_FC_CALLBACK_HANDLE handle type for NdrClientCall2(). 2015-03-06 12:57:03 +09:00
Nikolay Sivov 0810db96fa rpcrt4: Use RPC_* error code names. 2015-03-03 20:32:06 +09:00
André Hentschel c60a0b857d rpcrt4: Fix copy-paste error (coverity). 2012-10-24 19:39:01 +02:00
Thomas Faber 25b76525f3 rpcrt4: Match MSVC version of call_server_func with GCC. 2012-09-24 22:27:26 +02:00
André Hentschel fc2c0160fb rpcrt4: Avoid shadowing pProcHeader. 2012-04-30 20:03:28 +02:00
Francois Gouget e9e0507d2b rpcrt4: An interface pointer just has the size of a regular pointer. 2011-11-16 17:01:49 +01:00
Francois Gouget 97ba7aa521 rpcrt4: The offset to the complex pointer's description is signed. 2011-11-16 09:47:16 +01:00
Henri Verbeet f687728c43 rpcrt4: Properly size complex reference pointers. 2011-09-23 12:35:17 +02:00
Francois Gouget c992ca277d Assorted spelling fixes. 2011-08-24 19:07:46 +02:00
Frédéric Delanoy 7e309601f3 dlls: Assorted spelling fixes. 2011-08-03 14:15:50 +02:00
Alexandre Julliard 976cd5c9fe rpcrt4: Support sizing of a few more argument types. 2011-07-29 12:08:52 +02:00
Alexandre Julliard 2bdff69733 rpcrt4: Add a phase in proxies for zeroing output parameters on startup. 2011-07-28 23:10:20 +02:00
Alexandre Julliard a37ec01bd1 rpcrt4: Add a phase in proxies for clearing output parameters on error. 2011-07-28 23:09:53 +02:00
Alexandre Julliard 78e8fccbd6 rpcrt4: Use the same phase values for clients and stubs. 2011-07-28 23:07:21 +02:00
Alexandre Julliard f3734fd687 rpcrt4: Pass the full argument format to the size/marshall/unmarshall wrappers to greatly simplify the argument processing. 2011-07-28 22:13:49 +02:00
Alexandre Julliard ad7cb0cf6c rpcrt4: Convert old-style arguments for stub calls. 2011-07-28 17:48:19 +02:00
Alexandre Julliard 348f00e116 rpcrt4: Convert old-style arguments for NdrMesProcEncodeDecode. 2011-07-28 17:30:40 +02:00
Alexandre Julliard e8e3a2da83 rpcrt4: Convert old-style argument formats to new style so that the client call implementation can be shared. 2011-07-28 16:54:01 +02:00
Alexandre Julliard cf930f1fc9 rpcrt4: Simplify tracing of function parameters and flags. 2011-07-28 13:01:30 +02:00
Alexandre Julliard 064a81782c rpcrt4: Fetch the arguments address from the StubMsg structure. 2011-07-28 12:48:39 +02:00
Alexandre Julliard 4447f221db rpcrt4: Use a single structure for all parameter types in new format descriptors. 2011-07-28 12:43:27 +02:00
Alexandre Julliard 781ff545cf rpcrt4: Make sure we don't try to free a pointer twice. 2011-06-20 19:32:04 +02:00
Alexandre Julliard a75402af96 rpcrt4: Add a wrapper for NdrAsyncClientCall too. 2011-06-16 14:30:34 +02:00
Alexandre Julliard ffb8f4bedf rpcrt4: Add support for float parameters in client calls on x86_64. 2011-06-16 14:30:28 +02:00
Alexandre Julliard 0ce27385fd rpcrt4: Implement calling server functions on x86_64. 2011-06-14 16:12:04 +02:00
Alexandre Julliard b6599bd7df rpcrt4: Add an assembly wrapper to implement the NdrClientCall2 calling convention on x86_64. 2011-06-14 16:12:04 +02:00
Alexandre Julliard 379479a973 rpcrt4: Add a wrapper for NdrClientCall2 to isolate calling convention differences. 2011-06-14 16:12:04 +02:00
Alexandre Julliard e8567110b3 rpcrt4: Also check base types for null ref pointers. 2011-06-13 11:49:14 +02:00
Alexandre Julliard b0f8586078 rpcrt4: Fix handling of complex types of return values on the client side. 2011-06-13 11:48:49 +02:00