There has been some talk that SCOTUS upheld gun licensing in Heller. They neither struck down nor upheld licensing, they did not address it.
Looking at this another way, SCOTUS did not strike down licensing, but then again, they didn’t strike down McCain-Feingold, either. This is not an approval of either, as neither issue was part of the case at issue. The Court only mentions licensing to remove any ambiguity, because licensing was closer to the case than “campaign finance reform” was.
The result of this is that the status quo remains, which may seem functionally identical to upholding licensing, but has the important difference of not setting any form of precedent. All the court said was come back and talk to us again if you want an opinion on this.
Incidentally, I think that it was probably a good idea to leave licensing out of the case this time, as including might have lead to an instance of “we’re giving you enough already” where licensing would have actually been upheld. Also, one cannot call DC’s licensing discriminatory or arbitrary: no one was allowed a license. It would probably be better to bring a case where licensing was used in a discriminatory manner, as that would be more likely to be struck down.