Ticket #1561 (closed deprecation: done)

Opened 12 years ago

Last modified 11 years ago

Auto-vivification of nested aggregates is deprecated.

Reported by: bacek Owned by: Yuki`N
Priority: normal Milestone: 2.11
Component: core Version: branch
Severity: medium Keywords: gci
Cc: Language:
Patch status: Platform:

Description

E.g.

$P0 = new ['Hash']
$S0 = $P0['foo';'bar';'baz']

will not auto-vivify nested Hashes and return NULL early.

Change History

Changed 12 years ago by gerd

  • milestone changed from 2.4 to 2.5

Changed 11 years ago by jkeenan

  • component changed from none to core

We're approaching 2.9. Can we get an update on the status of this deprecation?

Thank you very much.

kid51

Changed 11 years ago by whiteknight

  • owner set to whiteknight
  • status changed from new to assigned

As far as I can see, this is already done. I did a quick skim through all the array types and through Hash, and I didn't see any types that were autovivifying nested aggregates. I think we can close this ticket, unless there is a type that I am missing.

Changed 11 years ago by whiteknight

Actually, my quick analysis was wrong. Hashes were still autovivifying, and it looks like RPA is too. I just fixed Hash (no tests broke), and will look at RPA later.

Changed 11 years ago by whiteknight

  • status changed from assigned to new

Changed 11 years ago by whiteknight

I've turned this into a GCI task.

Changed 11 years ago by Yuki`N

  • status changed from new to assigned
  • owner changed from whiteknight to Yuki`N

I'm going to take care of this; traced the autovivification behavior back to FixedPMCArray and will write up tests soon.

Changed 11 years ago by Yuki`N

  • keywords gci added
  • version changed from 2.2.0 to branch
  • milestone changed from 2.5 to 2.11

This is fixed by  a commit in my fork. Added a test to FixedPMCArray to prove autovivification is dead. Hopefully then we can set this ticket to rest.

Changed 11 years ago by Yuki`N

Requested my fork be pulled  here.

Changed 11 years ago by bacek

  • status changed from assigned to closed
  • resolution set to done

Auto-vivification was removed. Closing ticket.

Note: See TracTickets for help on using tickets.