All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scala.scalanative.optimizer.inject.ModuleArray.scala Maven / Gradle / Ivy

The newest version!
package scala.scalanative.optimizer.inject

import scala.collection.mutable
import scala.scalanative.nir._
import scala.scalanative.optimizer.analysis.ClassHierarchy.Top
import scala.scalanative.optimizer.{Inject, InjectCompanion}
import scala.scalanative.tools.Config

class ModuleArray(top: Top) extends Inject {
  override def apply(buf: mutable.Buffer[Defn]) = {
    buf +=
      Defn.Var(Attrs.None,
               ModuleArray.moduleArrayName,
               top.moduleArray.value.ty,
               top.moduleArray.value)

    buf +=
      Defn.Var(Attrs.None,
               ModuleArray.moduleArraySizeName,
               Type.Int,
               Val.Int(top.moduleArray.size))
  }
}

object ModuleArray extends InjectCompanion {
  val moduleArrayName     = Global.Top("__modules")
  val moduleArraySizeName = Global.Top("__modules_size")

  override def apply(config: Config, top: Top) = new ModuleArray(top)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy