Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
* Bring back desktop version of Marshal.Read/Write APIs that takes object and add a test
|
|
* Fix unittest `LPSTRTest`
The test case Interop.StringMarshalling.LPSTR.LPSTRTest
always returned exit code 100(pass) even if it actually failed.
This implements `ExitTest()` in the same manner with `LPTSTRTest`.
* Fix unittest `LPSTRTest` native
|
|
* change encoding to UTF-8
* change line ending to UNIX
* remove executable attribute
|
|
* Fix warning in LPTSTRTestNative and add support for wcsncmp in xplatform.h
|
|
The reference path had one too many `..`s.
|
|
Deleted a few other irrelevant properties as well while I was on it.
Fixes #7711
|
|
Fixes #7607
|
|
|
|
(#9172)
* Don't refdefine PAGE_SIZE on Android
* Don't re-declare INT_MIN on Android
* Fixup
|
|
There were few constructs that Clang 3.9 didn't like due to its strict
C++ standard conformance rules.
|
|
|
|
These issues were found when building with the /permissive- flag in the
latest version of MSVC. No tests were added/modified because this does not
change any behavior.
There are a few types of language conformance issues fixed in this:
1) Strict string conversion (this is also covered by the /Zc:strictStrings
flag)
The 'const' is not implicitly dropped by string literals, which means the
following is not allowed:
char str = "const string literal"; //error: cannot convert a 'const char'
to a 'char*'
This fix to to make str 'const char*'. (This can have a domino effect
depending on where str is used)
2) Fully qualified inline declarations members inside class
struct A {
void A::f() { } // Error: illegal qualified name in member declaration,
remove redundant 'A::' to fix
};
3) MSVC by default will allows name lookup in a dependent base. This is
disabled by /permissive-
template <class T> struct B {
void f();
};
template <class T> struct D
: public B<T> //B is a dependent base because its type depends on the type of T in D<T>.
{
//One possible fix is to uncomment the following line. If this
//were a type we should have 'using typename'...
//using B<T>::f;
void g() {
f(); //Error: identifier not found, one possible fix is change it to 'this->f();'
}
};
void h()
{
D<int> d;
d.g();
}
4) Warning 4800 has been removed in version 19.1 (1910) of the compiler.
For backwards compatability, surround the usage of 4800.
This is not related to C++ conformance.
#if _MSC_VER <= 1900
// 'BOOL' forcing value to bool 'true' or 'false'
#pragma warning(disable: 4800)
#endif
|
|
The managed code was assuming WINAPI, but the native code was defaulting
to cdecl. This causes GC stress failures on x86.
|
|
The managed code expects `GetFptr` to have the `stdcall` calling
convention. Because of the mismatch, the JIT-generated code was not
cleaning up the stack after P/Invoking to this function on x86, which
was causing a failure during GC stress.
|
|
|
|
|
|
is failing in non-Windows
|
|
To fix tests, change dnxcore50 -> netcoreapp1.0 and add test_runtime.
|
|
For non-blittable embedded array in structs we ignored the SizeConst and wrote past the
buffer when number of elementsin the arrayis greater than SizeConst.Fix is to truncate
the array at SizeConst
MarshalAs(UnManaged.ByValTStr)
Very subtle case when the SizeConst == Number of bytes required to marshal , we
write the null one past the buffer.This happens only on machine with non-english
(multi-byte) locale as default. Fix is to check the number of bytes required and
truncate the correctly leaving space for the terminating null.
|
|
|
|
Fix #5035
The file paths should be case-sensitive on Linux.
Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
|
|
Some TCs were using long for 64bit variable.
While it is correct on x86, long is 32bit on ARM.
Fix TCs to use long long instead so that they can pass on ARM as well.
Fix #5053
Signed-off-by: Dongyun Jin <dongyun.jin@samsung.com>
|
|
need to be consistent with existing one.Also
fixing a merge conflict.
|
|
|
|
|
|
UTF8 Marshaling support(UnmanagedType.LPUTF8Str)
|
|
Let out some of the review comments
since they are optimizations.
|
|
NetBSD: Fix build with LLVM-3.9
|
|
Usage: [MarshalAs(UnmanagedType.LPUTF8Str)] applied to string
and stringbuilder.
Implementation mostly use Encoding.UTF8 API to do the byte buffer
to string roundtripping. Introducing two new marshalers,
UTF8StringMarshaler and UTF8BufferMarshaler which handle string
and StringBuilder respectively. [Out] StringBuilder marshaling use
builder capacity as the buffer size ie (builder. Capacity + 1) *3
which is enough for any UTF8 char in BMP plane, infact Encoding.UTF8
mscorlib APIs use the same length.All marshaling flags(ThrowOnUnmapable,
defaultchar) are ignored since they do not make sense in UTF16 to UTD8
context.
The public contracts are not yet updated, the public contracts and
public marshaling API (Marshal.PtrToStringUtf8 and StringToHGlobalUtf8)
will be added once the implementation is in. The marshal api are anyway
going to be a wrapper around Encoding.GetBytes and GetChars.
|
|
[NativeCallable] in all architectures.
|
|
|
|
|
|
Remove native build warnings
|
|
|
|
Disabling the failing struct by value scenario.
|
|
|
|
Fix GetObjectForNativeVariant test issue. It should roundtrip the actual object instead of IntPtr. Also add proper variant clean up code.
Fix #4192.
|
|
Change Marshal.SizeOf to sizeof to calculate buffer size because Marshal.Copy copies managed contents, while Marshal.SizeOf gives native size. Fix #4254
|
|
and does not do marshalling.
|
|
object instead of IntPtr. Also add proper variant clean up code.
NOTE that I had to keep Marshal.IUnknownForObject call to force COM initialization.
|
|
porting. Also remove StringMarshal tests from issues.targets
|
|
into botaberg-port_interop_tests
|
|
Fix LPSTR test failure due to incorrect implementation of strncpy_s.
|
|
Windows specific Marshal APIs test.
|