Bug 45200 - Marshal.PtrToStructure struct with byte array fails with null reference exception
Summary: Marshal.PtrToStructure struct with byte array fails with null reference excep...
Status: RESOLVED FIXED
Alias: None
Product: Android
Classification: Xamarin
Component: Mono runtime / AOT Compiler ()
Version: unspecified
Hardware: PC Windows
: --- normal
Target Milestone: ---
Assignee: Marek Habersack
URL:
Depends on:
Blocks:
 
Reported: 2016-10-07 18:16 UTC by John Miller [MSFT]
Modified: 2016-10-10 14:20 UTC (History)
2 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
Sample Project (35.34 KB, application/zip)
2016-10-07 18:16 UTC, John Miller [MSFT]
Details


Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description John Miller [MSFT] 2016-10-07 18:16:16 UTC
Created attachment 17938 [details]
Sample Project

**Overview**:

Marshal.PtrToStructure produces a NRE when a struct has a byte[]. The same code works in a console application on Windows/Mac.

**Steps to Reproduce**:

1. Run the attached android project and press the button for the Error. 

**Actual Results**:

Object reference not set to an instance of an object
  at (wrapper unknown) MarshalException.MyStructs+Struct01:PtrToStructure (intptr,object)
  at (wrapper managed-to-native) System.Runtime.InteropServices.Marshal:PtrToStruc...

**Expected Results**:

No exception. See the console application in the solution to test without Android.

**Build Date & Platform**:

Microsoft Visual Studio Enterprise 2015
Version 14.0.25431.01 Update 3
Microsoft .NET Framework
Version 4.6.01586

Installed Version: Enterprise

Architecture and Modeling Tools   00322-80000-00000-AA000
Microsoft Architecture and Modeling Tools
    
UML® and Unified Modeling Language™ are trademarks or registered trademarks of the Object Management Group, Inc. in the United States and other countries.

Visual Basic 2015   00322-80000-00000-AA000
Microsoft Visual Basic 2015

Visual C# 2015   00322-80000-00000-AA000
Microsoft Visual C# 2015

Visual C++ 2015   00322-80000-00000-AA000
Microsoft Visual C++ 2015

Windows Phone SDK 8.0 - ENU   00322-80000-00000-AA000
Windows Phone SDK 8.0 - ENU

ASP.NET and Web Tools 2015.1   14.1.20907.0
ASP.NET and Web Tools 2015.1

ASP.NET Web Frameworks and Tools 2012.2   4.1.41102.0
For additional information, visit http://go.microsoft.com/fwlink/?LinkID=309563

ASP.NET Web Frameworks and Tools 2013   5.2.40314.0
For additional information, visit http://www.asp.net/

Azure App Service Tools v2.8.1   14.0.11123.0
Azure App Service Tools v2.8.1

Command Bus, Event Stream and Async Manager   Merq
Provides ICommandBus, IEventStream and IAsyncManager MEF services for loosely coupled Visual Studio extension components communication and integration.

Common Azure Tools   1.8
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

JavaScript Language Service   2.0
JavaScript Language Service

JavaScript Project System   2.0
JavaScript Project System

Microsoft .NET Core Tools (Preview 2)   14.1.20907.0
Microsoft .NET Core Tools (Preview 2)

Microsoft Azure Mobile Services Tools   1.4
Microsoft Azure Mobile Services Tools

NuGet Package Manager   3.5.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.

PreEmptive Analytics Visualizer   1.2
Microsoft Visual Studio extension to visualize aggregated summaries from the PreEmptive Analytics product.

SQL Server Data Tools   14.0.60519.0
Microsoft SQL Server Data Tools

TypeScript   1.8.36.0
TypeScript tools for Visual Studio

Visual Studio Tools for Unity   2.3.0.0
Visual Studio Tools for Unity

Xamarin   4.2.0.703 (3b7df6f)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin.Android   7.0.1.3 (96c7ba6)
Visual Studio extension to enable development for Xamarin.Android.

Xamarin.iOS   10.0.1.10 (ad1cd42)
Visual Studio extension to enable development for Xamarin.iOS.
Comment 2 Marek Habersack 2016-10-10 11:30:54 UTC
The error no longer occurs with the current XA/master (to be released in Cycle 9). You can test the latest XA/master on Mac using this build: https://bosstoragemirror.blob.core.windows.net/wrench/monodroid-mavericks-master/cf/cf2beeaf61722a06763b2935ca84a81365c8e6b7/xamarin.android-7.0.99-121.pkg
Comment 3 Isabele Leal 2016-10-10 14:07:47 UTC
Do you have a prevision when the Cycle 9 will be release to PC Windows?
Comment 4 Marek Habersack 2016-10-10 14:20:58 UTC
Hopefully in 3-5 weeks.