Rob Shearman
0e7b25349d
rpcrt4: Fix the pointer level being passed into call_unmarshaller in client_do_args_old_format for base return parameters.
...
NdrBaseTypeUnmarshall expects a pointer to a pointer to a base type.
pRetVal contains a pointer to a base type, so we need to pass the
address of pRetVal into call_unmarshaller here.
2008-03-10 19:25:55 +01:00
Rob Shearman
259ccc573c
rpcrt4: Fix -Oi interpreter for base types.
...
Don't call memory sizing rountines to compute the size of a type, since
memory sizing routines have side effects like checking there is enough
space in the buffer for the type and incrementing the buffer pointer.
Instead, create a function which returns the necessary size of the
limited set of types we can encounter and remove call_memory_sizer which
is no longer needed.
2008-03-10 19:12:54 +01:00
Rob Shearman
8608e895eb
Add a new convenience macro for an exception handler that handles all exceptions.
...
When using native compiler exceptions, the previous method of doing
this, __EXCEPT(NULL), would expand to __except(
(NULL)(GetExceptionInformation())) which doesn't compile as NULL isn't a
function.
So add a new macro, __EXCEPT_ALL, which works correctly both when using
native compiler exceptions and without and which makes the meaning of
code in which it is used clearer.
2008-02-16 14:58:24 +01:00
Rob Shearman
426418f725
rpcrt4: Don't set BufferStart and BufferEnd in NdrStubCall2.
...
The operations peformed by the stubless code should roughly match what
operations MIDL outputs in code, and it doesn't do this.
2008-01-22 11:18:56 +01:00
Rob Shearman
6ec9e0c77a
rpcrt4: Add an exception handler for stubless object proxies.
2008-01-17 15:30:18 +01:00
Andrew Talbot
3c14ae6699
rpcrt4: Remove unneeded casts.
2008-01-17 13:42:14 +01:00
Rob Shearman
ffffcfa239
rpcrt4: Move the setting of retval_ptr outside of any particular stub phase in stub_do_args and stub_do_old_args.
...
After the change in order of phases it was no longer being set in the
last phase and so caused all stubless functions to appear to have no
return value.
2008-01-16 12:15:51 +01:00
Rob Shearman
ed5b296289
rpcrt4: The initialisation of [out] variables in the stubless code must be after the unmarshaling of [in] and [in, out] variables has been completed.
...
This is because the size of an [out] variable could depend on a
conformance value stored in an unmarshalled [in] or [in,out] variable.
2008-01-14 15:31:37 +01:00
Rob Shearman
4f6142b8d9
rpcrt4: Handle complex arrays in calc_arg_size.
2008-01-14 15:31:37 +01:00
Rob Shearman
807a203f77
rpcrt4: Call NdrCorrelationInitialize and NdrCorrelationFree from NdrClientCall2 if new correlation descriptors have been specified.
2008-01-07 22:55:37 +01:00
Rob Shearman
f9a54a58d5
rpcrt4: ndr_stubless.h should include ndrtypes.h as it depends on types it defines.
2008-01-07 22:55:32 +01:00
Francois Gouget
b6ad7b5ef7
rpcrt4: Add an API documentation stub to make winapi_check happy.
2007-11-13 13:37:24 +01:00
Rob Shearman
c4a1a081a9
rpcrt4: Factorise out the argument processing from NdrStubCall2 into two functions.
2007-11-05 13:24:36 +01:00
Rob Shearman
83bc80ada0
rpcrt4: Move some type definitions from ndr_stubless.c to ndr_stubless.h.
2007-11-05 13:24:36 +01:00
Rob Shearman
3eac5b4e59
rpcrt4: Add a small bit of documentation as to what NdrStubCall2 does.
2007-11-05 13:24:36 +01:00
Rob Shearman
903fb72b21
rpcrt4: Add a STUBLESS_FREE phase for freeing the allocated memory in the server function.
2007-06-25 23:21:52 +02:00
Rob Shearman
a1dca20dd7
rpcrt4: Add support for ServerAllocSize parameters.
2007-06-25 23:21:52 +02:00
Andrew Talbot
d5d056ef75
rpcrt4: Exclude unused headers.
2007-05-18 14:11:22 +02:00
Joel Parker
2319999a05
Remove redundant semicolons for ANSI compatibility.
2007-01-17 11:58:15 +01:00
Francois Gouget
bb8e625b5b
Assorted spelling fixes.
2006-12-05 10:31:47 +01:00
Andrew Talbot
fcb5bc6a1f
rpcrt4: Cast-qual warnings fix.
2006-11-13 12:47:00 +01:00
Michael Stefaniuc
de21efbadd
rpcrt4: Win64 printf format warning fixes.
2006-11-10 11:31:59 +01:00
Michael Stefaniuc
32ec528405
rpcrt4: Bring the function definitions in sync with their declaration.
...
They got out of sync due to the unsigned long to ULONG changes in the headers.
2006-11-10 11:31:37 +01:00
Andrew Talbot
3f123e51bf
rpcrt4: Cast-qual warnings fix.
2006-09-26 11:40:47 +02:00
Robert Shearman
4bbc3ca8dc
rpcrt4: Move processing of the arguments from NdrClientCall2 to two new functions.
2006-08-16 16:41:42 +02:00
Robert Shearman
f953cc406a
rpcrt4: Add some more traces and make the stack offsets easier to read in the stubless interpreter.
2006-08-09 20:41:21 +02:00
Robert Shearman
88bbbed176
rpcrt4: Change call_memory_sizer to preserve the buffer contents and
...
initialise the memory size field to zero before calling the memory
sizer function.
2006-08-09 20:41:13 +02:00
Robert Shearman
d29108c396
rpcrt4: Set retval_ptr and allocate memory for out pointers for the old format stubless intepreter.
2006-08-09 20:41:01 +02:00
Robert Shearman
3db5f872a0
rpcrt4: Support fixed arrays in calc_arg_size.
2006-08-09 20:40:40 +02:00
Robert Shearman
e26bcb7fb2
rpcrt4: Complex types should be dereferenced an extra time in the old format stubless code.
2006-08-09 20:40:30 +02:00
Robert Shearman
64828b7520
rpcrt4: Fix the stack offset for the old format stubless code when an object's method is being called.
2006-08-09 20:40:25 +02:00
Huw Davies
93fb9d10f5
rpcrt4: Calculate size of FC_STRUCT arguments correctly.
2006-06-26 12:36:10 +02:00
Huw Davies
26c2953e58
rpcrt4: Fix the argument size of conformant arrays.
2006-06-16 14:42:36 +02:00
Robert Shearman
e3df112a39
rpcrt4: Don't raise an exception if there is no freer function - not all types have a freer.
2006-06-09 21:07:37 +02:00
Robert Shearman
1412c47a50
rpcrt4: Fix the retrieval of This for interpreted proxies.
2006-06-08 10:15:36 +02:00
Robert Shearman
7ef5c3c772
rpcrt4: Implement full-pointer support for interpreted stubs.
...
Move the calls to the full pointer init functions before
NdrClient/ServerInitializeNew, like in MIDL-generated code.
2006-06-08 10:15:22 +02:00
Robert Shearman
4e85273086
rpcrt4: Implement explicit generic binding handles.
2006-05-25 10:40:23 +02:00
Robert Shearman
0030b6dacd
rpcrt4: Move the getting of the client binding handle to a separate function.
2006-05-25 10:40:09 +02:00
Robert Shearman
fdda17deea
rpcrt4: Move the initialising of the stub message structure nearer to the top of NdrClientCall2.
...
Set stubMsg.StackTop after calling the initialise function.
2006-05-25 10:39:50 +02:00
Robert Shearman
9d87447455
rpcrt4: Store the arguments exclusively in stubMsg.StackTop.
2006-05-25 10:39:22 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Robert Shearman
6e7d06ad34
rpcrt4: Handle pointers to context handles in the stubless code.
...
Implement check for NULL context handles if requested.
2006-05-20 17:37:36 +02:00
Robert Shearman
98facf4d0f
rpcrt4: Use the documented NDR_PROC_HEADER_EXTS structure.
...
Use the documented NDR_PROC_HEADER_EXTS structure instead of the
current NDR_PROC_EXTENSIONS structure currently in ndr_stubless.c.
2006-04-20 15:11:34 +02:00
Robert Shearman
28f494e31a
rpcrt4: Use INTERPRETER_OPT_FLAGS in ndrtypes.h instead of flags on an unsigned char.
2006-04-20 15:11:24 +02:00
Robert Shearman
312df9bf7f
rpcrt4: Store the return value on the stack for interpreted stubs.
...
Store the return value on the stack for stubs, as MIDL reserves space
for it and gives us a stack offset. This fixes calling methods with
thunks that assume that the return value will be stored on the stack.
2006-04-20 15:10:25 +02:00
Robert Shearman
f4de78babe
rpcrt4: Correctly fill in StackTop for stubless clients/servers.
...
Correctly fill in StackTop for stubless clients/servers so that
conformance for top-level parameters works.
2006-04-20 15:10:09 +02:00
Robert Shearman
727e25d673
rpcrt4: There's no need to set stubMsg.StackTop twice.
2006-04-20 15:09:49 +02:00
Robert Shearman
a674ec0fda
rpcrt4: Fix the MSVC version of call_server_func.
...
Fix the MSVC version of call_server_func to pop the registers in the
same order they were pushed.
2006-04-20 15:09:39 +02:00
Robert Shearman
4253b01239
rpcrt4: Change the stubless parameter attributes to using a bitfield
...
(as defined by the PSDK) so the ServerAllocSize part is easier to
calculate.
2006-03-01 19:54:00 +01:00
Robert Shearman
4d25edc298
rpcrt4: Restrict stubless FC types to the range of the type function table.
2006-02-03 18:46:40 +01:00