Search Issue Tracker

By Design

Votes

9

Found in

4.3.0f4

Issue ID

583896

Regression

Yes

Mono/Unity does not perform null checks properly

Scripting

-

To reproduce:
1. Open the attached project
2. Attach the script to the Main Camera
3. Run the scene
4. Observe the logs in the console
5. Observe the script content

----

Script tries to assign a collider that does not exist to a variable then add it to List<Component> if it's not null. The variable gets added to the list but components[0] is null:

var obj = GetComponent<Collider>(); //Get a component that does not exist
components.AddNotNull(obj); //Add it if it is not null

//Check result
Debug.Log("Number of items: " + components.Count + ".");
Debug.Log("First value: " + components[0] + ".");

Explanation:
http://blogs.unity3d.com/2014/05/16/custom-operator-should-we-keep-it/

Comments (2)

  1. JoshPeterson

    Sep 16, 2014 12:22

    We have determined that although this behavior is odd, it is by design at the moment. Please see the discussion in the forum here for more details:

    http://forum.unity3d.com/threads/null-check-inconsistency-c.220649

  2. User1234

    Apr 26, 2014 16:44

    This issue sounds very much like the cause of an NGUI problem reported at...
    http://www.tasharen.com/forum/index.php?topic=7515.0
    "NGUITools.FindInParents fails sometimes"

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.