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