Пример #1
0
        static Util()
        {
            #region memcpy Init

            unsafe
            {
                var dynamicMethod = new DynamicMethod
                (
                    "memcpy",
                    typeof(void),
                    new[] { typeof(void*), typeof(void*), typeof(uint) },
                    typeof(Util)
                );

                var ilGenerator = dynamicMethod.GetILGenerator();

                ilGenerator.Emit(OpCodes.Ldarg_0); // push des
                ilGenerator.Emit(OpCodes.Ldarg_1); // push src
                ilGenerator.Emit(OpCodes.Ldarg_2); // push bytes
                ilGenerator.Emit(OpCodes.Cpblk);   // memcpy
                ilGenerator.Emit(OpCodes.Ret);     // return

                m_memcpy = (MemcpyCallback)dynamicMethod.CreateDelegate(typeof(MemcpyCallback));
            }

            #endregion memcpy Init
        }
Пример #2
0
        static Util()
        {
            #region memcpy Init

            unsafe
            {
                var dynamicMethod = new DynamicMethod
                                    (
                    "memcpy",
                    typeof(void),
                    new[] { typeof(void *), typeof(void *), typeof(uint) },
                    typeof(Util)
                                    );

                var ilGenerator = dynamicMethod.GetILGenerator();

                ilGenerator.Emit(OpCodes.Ldarg_0); // push des
                ilGenerator.Emit(OpCodes.Ldarg_1); // push src
                ilGenerator.Emit(OpCodes.Ldarg_2); // push bytes
                ilGenerator.Emit(OpCodes.Cpblk);   // memcpy
                ilGenerator.Emit(OpCodes.Ret);     // return

                m_memcpy = (MemcpyCallback)dynamicMethod.CreateDelegate(typeof(MemcpyCallback));
            }

            #endregion memcpy Init

            #region Invalid Characters Init

            // A hashset of invalid path and filename characters
            m_invalidPathChars = new HashSet <char>();

            foreach (char c in Path.GetInvalidFileNameChars())
            {
                m_invalidPathChars.Add(c);
            }
            foreach (char c in Path.GetInvalidPathChars())
            {
                m_invalidPathChars.Add(c);
            }

            #endregion Invalid Characters Init
        }
Пример #3
0
        static Util()
        {
            #region memcpy Init

            unsafe
            {
                var dynamicMethod = new DynamicMethod
                (
                    "memcpy",
                    typeof(void),
                    new[] { typeof(void*), typeof(void*), typeof(uint) },
                    typeof(Util)
                );

                var ilGenerator = dynamicMethod.GetILGenerator();

                ilGenerator.Emit(OpCodes.Ldarg_0); // push des
                ilGenerator.Emit(OpCodes.Ldarg_1); // push src
                ilGenerator.Emit(OpCodes.Ldarg_2); // push bytes
                ilGenerator.Emit(OpCodes.Cpblk);   // memcpy
                ilGenerator.Emit(OpCodes.Ret);     // return

                m_memcpy = (MemcpyCallback)dynamicMethod.CreateDelegate(typeof(MemcpyCallback));
            }

            #endregion memcpy Init

            #region Invalid Characters Init

            // A hashset of invalid path and filename characters
            m_invalidPathChars = new HashSet<char>();

            foreach (char c in Path.GetInvalidFileNameChars())
                m_invalidPathChars.Add(c);
            foreach (char c in Path.GetInvalidPathChars())
                m_invalidPathChars.Add(c);

            #endregion Invalid Characters Init
        }