| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -27,9 +27,10 @@ | |||
| 27 | 27 | - David Lechner ([@dlech](https://github.com/dlech)) | |
| 28 | 28 | - Dmitriy Se ([@dmitriyse](https://github.com/dmitriyse)) | |
| 29 | 29 | - He-chien Tsai ([@t3476](https://github.com/t3476)) | |
| 30 | - - Ivan Cronyn ([@cronan](https://github.com/cronan)) | ||
| 30 | + - Inna Wiesel ([@inna-w](https://github.com/inna-w)) | ||
| 31 | + - Ivan Cronyn ([@cronan](https://github.com/cronan)) | ||
| 31 | 32 | - Jan Krivanek ([@jakrivan](https://github.com/jakrivan)) | |
| 32 | - - Jeff Reback ([@jreback](https://github.com/jreback)) | ||
| 33 | + - Jeff Reback ([@jreback](https://github.com/jreback)) | ||
| 33 | 34 | - Joe Frayne ([@jfrayne](https://github.com/jfrayne)) | |
| 34 | 35 | - John Burnett ([@johnburnett](https://github.com/johnburnett)) | |
| 35 | 36 | - John Wilkes ([@jbw3](https://github.com/jbw3)) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -9,6 +9,8 @@ This document follows the conventions laid out in [Keep a CHANGELOG][]. | |||
| 9 | 9 | ||
| 10 | 10 | ### Added | |
| 11 | 11 | ||
| 12 | + - Added automatic NuGet package generation in appveyor and local builds | ||
| 13 | + | ||
| 12 | 14 | ### Changed | |
| 13 | 15 | ||
| 14 | 16 | ### Fixed | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -5,7 +5,7 @@ pythonnet - Python for .NET | |||
| 5 | 5 | ||
| 6 | 6 | |appveyor shield| |travis shield| |codecov shield| | |
| 7 | 7 | ||
| 8 | - |license shield| |pypi package version| |python supported shield| | ||
| 8 | + |license shield| |pypi package version| |conda-forge version| |python supported shield| | ||
| 9 | 9 | |stackexchange shield| | |
| 10 | 10 | ||
| 11 | 11 | Python for .NET is a package that gives Python programmers nearly | |
@@ -111,3 +111,5 @@ https://github.com/pythonnet/pythonnet/wiki | |||
| 111 | 111 | :target: https://pypi.python.org/pypi/pythonnet | |
| 112 | 112 | .. |stackexchange shield| image:: https://img.shields.io/badge/StackOverflow-python.net-blue.svg | |
| 113 | 113 | :target: http://stackoverflow.com/questions/tagged/python.net | |
| 114 | + .. |conda-forge version| image:: https://img.shields.io/conda/vn/conda-forge/pythonnet.svg | ||
| 115 | + :target: https://anaconda.org/conda-forge/pythonnet | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -72,6 +72,7 @@ on_finish: | |||
| 72 | 72 | ||
| 73 | 73 | artifacts: | |
| 74 | 74 | - path: dist\* | |
| 75 | + - path: '.\src\runtime\bin\*.nupkg' | ||
| 75 | 76 | ||
| 76 | 77 | notifications: | |
| 77 | 78 | - provider: Slack | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -334,6 +334,7 @@ def build_extension(self, ext): | |||
| 334 | 334 | ), | |
| 335 | 335 | '/p:PythonBuildDir="{}"'.format(os.path.abspath(dest_dir)), | |
| 336 | 336 | '/p:PythonInteropFile="{}"'.format(os.path.basename(interop_file)), | |
| 337 | + "/p:PackageId=pythonnet_py{0}{1}_{2}".format(PY_MAJOR, PY_MINOR, ARCH), | ||
| 337 | 338 | "/verbosity:{}".format(VERBOSITY), | |
| 338 | 339 | ] | |
| 339 | 340 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -45,7 +45,7 @@ public void CollectBasicObject() | |||
| 45 | 45 | called = true; | |
| 46 | 46 | }; | |
| 47 | 47 | ||
| 48 | - Assert.IsFalse(called); | ||
| 48 | + Assert.IsFalse(called, "The event handler was called before it was installed"); | ||
| 49 | 49 | Finalizer.Instance.CollectOnce += handler; | |
| 50 | 50 | ||
| 51 | 51 | WeakReference shortWeak; | |
@@ -55,13 +55,25 @@ public void CollectBasicObject() | |||
| 55 | 55 | } | |
| 56 | 56 | FullGCCollect(); | |
| 57 | 57 | // The object has been resurrected | |
| 58 | - Assert.IsFalse(shortWeak.IsAlive); | ||
| 59 | - Assert.IsTrue(longWeak.IsAlive); | ||
| 58 | + Warn.If( | ||
| 59 | + shortWeak.IsAlive, | ||
| 60 | + "The referenced object is alive although it should have been collected", | ||
| 61 | + shortWeak | ||
| 62 | + ); | ||
| 63 | + Assert.IsTrue( | ||
| 64 | + longWeak.IsAlive, | ||
| 65 | + "The reference object is not alive although it should still be", | ||
| 66 | + longWeak | ||
| 67 | + ); | ||
| 60 | 68 | ||
| 61 | 69 | { | |
| 62 | 70 | var garbage = Finalizer.Instance.GetCollectedObjects(); | |
| 63 | - Assert.NotZero(garbage.Count); | ||
| 64 | - Assert.IsTrue(garbage.Any(T => ReferenceEquals(T.Target, longWeak.Target))); | ||
| 71 | + Assert.NotZero(garbage.Count, "There should still be garbage around"); | ||
| 72 | + Warn.Unless( | ||
| 73 | + garbage.Any(T => ReferenceEquals(T.Target, longWeak.Target)), | ||
| 74 | + $"The {nameof(longWeak)} reference doesn't show up in the garbage list", | ||
| 75 | + garbage | ||
| 76 | + ); | ||
| 65 | 77 | } | |
| 66 | 78 | try | |
| 67 | 79 | { | |
@@ -71,7 +83,7 @@ public void CollectBasicObject() | |||
| 71 | 83 | { | |
| 72 | 84 | Finalizer.Instance.CollectOnce -= handler; | |
| 73 | 85 | } | |
| 74 | - Assert.IsTrue(called); | ||
| 86 | + Assert.IsTrue(called, "The event handler was not called during finalization"); | ||
| 75 | 87 | Assert.GreaterOrEqual(objectCount, 1); | |
| 76 | 88 | } | |
| 77 | 89 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,147 @@ | |||
| 1 | + <Project> | ||
| 2 | + <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" /> | ||
| 3 | + <PropertyGroup> | ||
| 4 | + <TargetFrameworks>net40;netstandard2.0</TargetFrameworks> | ||
| 5 | + <Platforms>AnyCPU</Platforms> | ||
| 6 | + <Configurations>DebugMono;DebugMonoPY3;ReleaseMono;ReleaseMonoPY3;DebugWin;DebugWinPY3;ReleaseWin;ReleaseWinPY3</Configurations> | ||
| 7 | + <AssetTargetFallback Condition="'$(TargetFramework)'=='net40' AND $(Configuration.Contains('Mono'))">net45</AssetTargetFallback> | ||
| 8 | + <RootNamespace>Python.Runtime</RootNamespace> | ||
| 9 | + <AssemblyName>Python.Runtime</AssemblyName> | ||
| 10 | + <PackageId>pythonnet</PackageId> | ||
| 11 | + <VersionPrefix>2.4.1</VersionPrefix> | ||
| 12 | + <GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||
| 13 | + <GenerateAssemblyInfo>false</GenerateAssemblyInfo> | ||
| 14 | + <Title>Python for .NET</Title> | ||
| 15 | + <Copyright>Copyright (c) 2006-2019 the contributors of the 'Python for .NET' project</Copyright> | ||
| 16 | + <Description>Python and CLR (.NET and Mono) cross-platform language interop</Description> | ||
| 17 | + <Authors>pythonnet</Authors> | ||
| 18 | + <PackageLicenseUrl>https://github.com/pythonnet/pythonnet/blob/master/LICENSE</PackageLicenseUrl> | ||
| 19 | + <RepositoryUrl>https://github.com/pythonnet/pythonnet</RepositoryUrl> | ||
| 20 | + <RepositoryType>git</RepositoryType> | ||
| 21 | + <!--<PackageReleaseNotes>https://github.com/pythonnet/pythonnet/releases/tag/v2.4.0</PackageReleaseNotes>--> | ||
| 22 | + <PackageTags>python interop dynamic dlr Mono pinvoke</PackageTags> | ||
| 23 | + <PackageIconUrl>https://raw.githubusercontent.com/pythonnet/pythonnet/master/src/console/python-clear.ico</PackageIconUrl> | ||
| 24 | + <PackageProjectUrl>https://pythonnet.github.io/</PackageProjectUrl> | ||
| 25 | + <OutputPath>bin\</OutputPath> | ||
| 26 | + <AppendTargetFrameworkToOutputPath Condition="'$(TargetFramework)'=='net40'">false</AppendTargetFrameworkToOutputPath> | ||
| 27 | + <DocumentationFile Condition="'$(TargetFramework)'=='net40'">$(OutputPath)\$(AssemblyName).xml</DocumentationFile> | ||
| 28 | + <DocumentationFile Condition="'$(TargetFramework)'!='net40'">$(OutputPath)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile> | ||
| 29 | + <NoWarn>1591;NU1701</NoWarn> | ||
| 30 | + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> | ||
| 31 | + <PythonBuildDir Condition="'$(PythonBuildDir)' == ''">$(SolutionDir)\bin\</PythonBuildDir> | ||
| 32 | + <PublishDir Condition="'$(TargetFramework)'!='net40'">$(PythonBuildDir)\$(TargetFramework)\</PublishDir> | ||
| 33 | + <LangVersion>6</LangVersion> | ||
| 34 | + <AllowUnsafeBlocks>True</AllowUnsafeBlocks> | ||
| 35 | + <AssemblyOriginatorKeyFile>..\pythonnet.snk</AssemblyOriginatorKeyFile> | ||
| 36 | + <CustomDefineConstants Condition="'$(CustomDefineConstants)' == ''">$(PYTHONNET_DEFINE_CONSTANTS)</CustomDefineConstants> | ||
| 37 | + <BaseDefineConstants>XPLAT</BaseDefineConstants> | ||
| 38 | + <DefineConstants>$(DefineConstants);$(CustomDefineConstants);$(BaseDefineConstants);</DefineConstants> | ||
| 39 | + <DefineConstants Condition="'$(TargetFramework)'=='netstandard2.0'">$(DefineConstants);NETSTANDARD</DefineConstants> | ||
| 40 | + <DefineConstants Condition="'$(BuildingInsideVisualStudio)' == 'true' AND '$(CustomDefineConstants)' != '' AND $(Configuration.Contains('Debug'))">$(DefineConstants);TRACE;DEBUG</DefineConstants> | ||
| 41 | + <FrameworkPathOverride Condition="'$(TargetFramework)'=='net40' AND $(Configuration.Contains('Mono'))">$(NuGetPackageRoot)\microsoft.targetingpack.netframework.v4.5\1.0.1\lib\net45\</FrameworkPathOverride> | ||
| 42 | + <Python2Version>$(PYTHONNET_PY2_VERSION)</Python2Version> | ||
| 43 | + <Python2Version Condition="'$(Python2Version)'==''">PYTHON27</Python2Version> | ||
| 44 | + <Python3Version>$(PYTHONNET_PY3_VERSION)</Python3Version> | ||
| 45 | + <Python3Version Condition="'$(Python3Version)'==''">PYTHON37</Python3Version> | ||
| 46 | + <PythonWinDefineConstants>$(PYTHONNET_WIN_DEFINE_CONSTANTS)</PythonWinDefineConstants> | ||
| 47 | + <PythonWinDefineConstants Condition="'$(PythonWinDefineConstants)'==''">UCS2</PythonWinDefineConstants> | ||
| 48 | + <PythonMonoDefineConstants>$(PYTHONNET_MONO_DEFINE_CONSTANTS)</PythonMonoDefineConstants> | ||
| 49 | + <PythonMonoDefineConstants Condition="'$(PythonMonoDefineConstants)'==''">UCS4;MONO_LINUX;PYTHON_WITH_PYMALLOC</PythonMonoDefineConstants> | ||
| 50 | + <PythonInteropFile Condition="'$(PythonInteropFile)'==''">$(PYTHONNET_INTEROP_FILE)</PythonInteropFile> | ||
| 51 | + </PropertyGroup> | ||
| 52 | + <PropertyGroup Condition="$(Configuration.Contains('Debug')) AND '$(TargetFramework)'=='net40'"> | ||
| 53 | + <Optimize>false</Optimize> | ||
| 54 | + <DebugType>full</DebugType> | ||
| 55 | + </PropertyGroup> | ||
| 56 | + <PropertyGroup Condition="$(Configuration.Contains('Release')) AND '$(TargetFramework)'=='net40'"> | ||
| 57 | + <Optimize>true</Optimize> | ||
| 58 | + <DebugType>pdbonly</DebugType> | ||
| 59 | + </PropertyGroup> | ||
| 60 | + <PropertyGroup Condition="$(Configuration.Contains('Debug')) AND '$(TargetFramework)'=='netstandard2.0'"> | ||
| 61 | + <DebugSymbols>true</DebugSymbols> | ||
| 62 | + <Optimize>false</Optimize> | ||
| 63 | + <DebugType>full</DebugType> | ||
| 64 | + </PropertyGroup> | ||
| 65 | + <PropertyGroup Condition="$(Configuration.Contains('Release')) AND '$(TargetFramework)'=='netstandard2.0'"> | ||
| 66 | + <DebugSymbols>true</DebugSymbols> | ||
| 67 | + <Optimize>true</Optimize> | ||
| 68 | + <DebugType>portable</DebugType> | ||
| 69 | + </PropertyGroup> | ||
| 70 | + | ||
| 71 | + <PropertyGroup Condition=" '$(Configuration)' == 'ReleaseMono'"> | ||
| 72 | + <DefineConstants Condition="'$(CustomDefineConstants)' == ''">$(DefineConstants);PYTHON2;$(Python2Version);$(PythonMonoDefineConstants)</DefineConstants> | ||
| 73 | + </PropertyGroup> | ||
| 74 | + <PropertyGroup Condition=" '$(Configuration)' == 'ReleaseMonoPY3'"> | ||
| 75 | + <DefineConstants Condition="'$(CustomDefineConstants)' == ''">$(DefineConstants);PYTHON3;$(Python3Version);$(PythonMonoDefineConstants)</DefineConstants> | ||
| 76 | + </PropertyGroup> | ||
| 77 | + <PropertyGroup Condition=" '$(Configuration)' == 'DebugMono'"> | ||
| 78 | + <DefineConstants Condition="'$(CustomDefineConstants)' == ''">$(DefineConstants);PYTHON2;$(Python2Version);$(PythonMonoDefineConstants);FINALIZER_CHECK;TRACE;DEBUG</DefineConstants> | ||
| 79 | + </PropertyGroup> | ||
| 80 | + <PropertyGroup Condition=" '$(Configuration)' == 'DebugMonoPY3'"> | ||
| 81 | + <DefineConstants Condition="'$(CustomDefineConstants)' == ''">$(DefineConstants);PYTHON3;$(Python3Version);$(PythonMonoDefineConstants);FINALIZER_CHECK;TRACE;DEBUG</DefineConstants> | ||
| 82 | + </PropertyGroup> | ||
| 83 | + <PropertyGroup Condition=" '$(Configuration)' == 'ReleaseWin'"> | ||
| 84 | + <DefineConstants Condition="'$(CustomDefineConstants)' == ''">$(DefineConstants);PYTHON2;$(Python2Version);$(PythonWinDefineConstants)</DefineConstants> | ||
| 85 | + </PropertyGroup> | ||
| 86 | + <PropertyGroup Condition=" '$(Configuration)' == 'ReleaseWinPY3'"> | ||
| 87 | + <DefineConstants Condition="'$(CustomDefineConstants)' == ''">$(DefineConstants);PYTHON3;$(Python3Version);$(PythonWinDefineConstants)</DefineConstants> | ||
| 88 | + </PropertyGroup> | ||
| 89 | + <PropertyGroup Condition=" '$(Configuration)' == 'DebugWin'"> | ||
| 90 | + <DefineConstants Condition="'$(CustomDefineConstants)' == ''">$(DefineConstants);PYTHON2;$(Python2Version);$(PythonWinDefineConstants);FINALIZER_CHECK;TRACE;DEBUG</DefineConstants> | ||
| 91 | + </PropertyGroup> | ||
| 92 | + <PropertyGroup Condition=" '$(Configuration)' == 'DebugWinPY3'"> | ||
| 93 | + <DefineConstants Condition="'$(CustomDefineConstants)' == ''">$(DefineConstants);PYTHON3;$(Python3Version);$(PythonWinDefineConstants);FINALIZER_CHECK;TRACE;DEBUG</DefineConstants> | ||
| 94 | + </PropertyGroup> | ||
| 95 | + | ||
| 96 | + <ItemGroup Condition=" '$(PythonInteropFile)' != '' "> | ||
| 97 | + <Compile Remove="interop*.cs" /> | ||
| 98 | + <Compile Include="interop.cs" /> | ||
| 99 | + <Compile Include="$(PythonInteropFile)" /> | ||
| 100 | + </ItemGroup> | ||
| 101 | + | ||
| 102 | + <ItemGroup> | ||
| 103 | + <None Include="..\pythonnet.snk" /> | ||
| 104 | + </ItemGroup> | ||
| 105 | + <ItemGroup> | ||
| 106 | + <None Remove="resources\clr.py" /> | ||
| 107 | + </ItemGroup> | ||
| 108 | + | ||
| 109 | + <ItemGroup> | ||
| 110 | + <Compile Include="..\SharedAssemblyInfo.cs" Link="Properties\SharedAssemblyInfo.cs" /> | ||
| 111 | + </ItemGroup> | ||
| 112 | + | ||
| 113 | + <ItemGroup> | ||
| 114 | + <EmbeddedResource Include="resources\clr.py"> | ||
| 115 | + <LogicalName>clr.py</LogicalName> | ||
| 116 | + </EmbeddedResource> | ||
| 117 | + </ItemGroup> | ||
| 118 | + | ||
| 119 | + <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'"> | ||
| 120 | + <PackageReference Include="System.Security.Permissions" Version="4.4.0" /> | ||
| 121 | + <PackageReference Include="System.Reflection.Emit" Version="4.3.0" /> | ||
| 122 | + </ItemGroup> | ||
| 123 | + | ||
| 124 | + <ItemGroup Condition="'$(TargetFramework)' == 'net40'"> | ||
| 125 | + <Reference Include="Microsoft.CSharp" /> | ||
| 126 | + </ItemGroup> | ||
| 127 | + | ||
| 128 | + <ItemGroup Condition="'$(TargetFramework)'=='net40'"> | ||
| 129 | + <PackageReference Include="Microsoft.TargetingPack.NETFramework.v4.5" Version="1.0.1" ExcludeAssets="All" PrivateAssets="All" /> | ||
| 130 | + </ItemGroup> | ||
| 131 | + | ||
| 132 | + <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" /> | ||
| 133 | + | ||
| 134 | + <PropertyGroup> | ||
| 135 | + <TargetAssembly>$(TargetPath)</TargetAssembly> | ||
| 136 | + <TargetAssemblyPdb>$(TargetDir)$(TargetName).pdb</TargetAssemblyPdb> | ||
| 137 | + </PropertyGroup> | ||
| 138 | + | ||
| 139 | + <Target Name="BeforeBuild" Condition="'$(TargetFramework)'=='net40' AND $(Configuration.Contains('Mono')) AND '$(OS)' != 'Windows_NT'"> | ||
| 140 | + <!--Endless war!--> | ||
| 141 | + <Exec Command="[[ -e $(NuGetPackageRoot)/microsoft.targetingpack.netframework.v4.5/1.0.1/lib/net45/System.Xml.dll ]] || cp $(NuGetPackageRoot)/microsoft.targetingpack.netframework.v4.5/1.0.1/lib/net45/System.XML.dll $(NuGetPackageRoot)/microsoft.targetingpack.netframework.v4.5/1.0.1/lib/net45/System.Xml.dll" /> | ||
| 142 | + </Target> | ||
| 143 | + <Target Name="AfterBuild"> | ||
| 144 | + <Copy Condition="'$(TargetFramework)'=='net40'" SourceFiles="$(TargetAssembly)" DestinationFolder="$(PythonBuildDir)" /> | ||
| 145 | + <!--Copy SourceFiles="$(TargetAssemblyPdb)" Condition="Exists('$(TargetAssemblyPdb)')" DestinationFolder="$(PythonBuildDir)" /--> | ||
| 146 | + </Target> | ||
| 147 | + </Project> | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -229,6 +229,8 @@ public enum MachineType | |||
| 229 | 229 | { | |
| 230 | 230 | i386, | |
| 231 | 231 | x86_64, | |
| 232 | + armv7l, | ||
| 233 | + armv8, | ||
| 232 | 234 | Other | |
| 233 | 235 | }; | |
| 234 | 236 | ||
@@ -247,6 +249,8 @@ public enum MachineType | |||
| 247 | 249 | ["amd64"] = MachineType.x86_64, | |
| 248 | 250 | ["x64"] = MachineType.x86_64, | |
| 249 | 251 | ["em64t"] = MachineType.x86_64, | |
| 252 | + ["armv7l"] = MachineType.armv7l, | ||
| 253 | + ["armv8"] = MachineType.armv8, | ||
| 250 | 254 | }; | |
| 251 | 255 | ||
| 252 | 256 | /// <summary> | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -510,6 +510,10 @@ public static NativeCode Active | |||
| 510 | 510 | return I386; | |
| 511 | 511 | case Runtime.MachineType.x86_64: | |
| 512 | 512 | return X86_64; | |
| 513 | + case Runtime.MachineType.armv7l: | ||
| 514 | + return Armv7l; | ||
| 515 | + case Runtime.MachineType.armv8: | ||
| 516 | + return Armv8; | ||
| 513 | 517 | default: | |
| 514 | 518 | throw new NotImplementedException($"No support for {Runtime.MachineName}"); | |
| 515 | 519 | } | |
@@ -546,6 +550,34 @@ public static NativeCode Active | |||
| 546 | 550 | /// <see cref="NativeCode.X86_64"/> | |
| 547 | 551 | /// </summary> | |
| 548 | 552 | public static readonly NativeCode I386 = X86_64; | |
| 553 | + | ||
| 554 | + public static readonly NativeCode Armv7l = new NativeCode() | ||
| 555 | + { | ||
| 556 | + Return0 = 0, | ||
| 557 | + Return1 = 0x08, | ||
| 558 | + Code = new byte[] | ||
| 559 | + { | ||
| 560 | + 0xe3, 0xa0, 0x00, 0x00, // mov r0, #0 | ||
| 561 | + 0xe1, 0x2f, 0xff, 0x1e, // bx lr | ||
| 562 | + | ||
| 563 | + 0xe3, 0xa0, 0x00, 0x01, // mov r0, #1 | ||
| 564 | + 0xe1, 0x2f, 0xff, 0x1e, // bx lr | ||
| 565 | + } | ||
| 566 | + }; | ||
| 567 | + | ||
| 568 | + public static readonly NativeCode Armv8 = new NativeCode() | ||
| 569 | + { | ||
| 570 | + Return0 = 0, | ||
| 571 | + Return1 = 0x08, | ||
| 572 | + Code = new byte[] | ||
| 573 | + { | ||
| 574 | + 0x52, 0x80, 0x00, 0x00, // mov w0, #0x0 | ||
| 575 | + 0xd6, 0x5f, 0x03, 0xc0, // ret | ||
| 576 | + | ||
| 577 | + 0x52, 0x80, 0x00, 0x20, // mov w0, #0x1 | ||
| 578 | + 0xd6, 0x5f, 0x03, 0xc0, // ret | ||
| 579 | + } | ||
| 580 | + }; | ||
| 549 | 581 | } | |
| 550 | 582 | ||
| 551 | 583 | /// <summary> | |
| Back | FazBrowse Home | New Git URL |
0 commit comments