memory leak when load cached texture??

In my code, I want to load some textures form WWW, and I also want it cached after first download, so I use WWW.LoadFromCacheOrDownload,
then I access the texture:
tex = www.assetbundle.mainAsset as Texture.

but after I don’t need this tex anymore (e.g. quit current level), I find that I can’t Destroy it (it is Asset from AssetBundle), so I just assign tex with null.
when I load the texture again with LoadFromCacheOrDownload, a new texture copy is created.
the memory usage is grown fast in profiler.
I write some code to demonstrate the problem:

IEnumerator _Step()
        //var step = new WaitForSeconds(0.1f);
        var step = new WaitForEndOfFrame();

        while (true)
            //var w = new WWW("");
            var w = WWW.LoadFromCacheOrDownload("", 3);

            yield return w;

            tex = w.assetBundle.mainAsset as Texture;
            yield return step;

In the unity document, I find the api LoadImageIntoTexture, I test it, and it’s fine(no extra memory grown), but I can’t use LoadFromCacheOrDownload anymore, because WWWCached can only be accessed by www.assetbundle.

please help me …

I can w.assetBundle.Unload(true) to destroy any texture loaded from this assetbundle.
But the ‘tex’ is also invalid immediately.