Package com.esotericsoftware.kryo.util

Examples of com.esotericsoftware.kryo.util.IntArray


      nextClass = nextClass.getSuperclass();
    }

    ObjectMap context = kryo.getContext();

    IntArray useAsm = new IntArray();

    // Sort fields by their offsets
    if (useMemRegions && !useAsmEnabled && unsafeAvailable) {
      try {
        Field[] allFieldsArray = (Field[])sortFieldsByOffsetMethod.invoke(null, allFields);
        allFields = Arrays.asList(allFieldsArray);
      } catch (Exception e) {
        throw new RuntimeException("Cannot invoke UnsafeUtil.sortFieldsByOffset()", e);
      }
    }

    // TODO: useAsm is modified as a side effect, this should be pulled out of buildValidFields
    // Build a list of valid non-transient fields
    List<Field> validFields = buildValidFields(false, allFields, context, useAsm);
    // Build a list of valid transient fields
    List<Field> validTransientFields = buildValidFields(true, allFields, context, useAsm);

    // Use ReflectASM for any public fields.
    if (useAsmEnabled && !Util.isAndroid && Modifier.isPublic(type.getModifiers()) && useAsm.indexOf(1) != -1) {
      try {
        access = FieldAccess.get(type);
      } catch (RuntimeException ignored) {
      }
    }
View Full Code Here


      nextClass = nextClass.getSuperclass();
    }

    ObjectMap context = kryo.getContext();

    IntArray useAsm = new IntArray();

    // Sort fields by their offsets
    if (useMemRegions && !useAsmEnabled && unsafe() != null) {
      Field[] allFieldsArray = UnsafeUtil.sortFieldsByOffset(allFields);
      allFields = Arrays.asList(allFieldsArray);
    }

    // TODO: useAsm is modified as a side effect, this should be pulled out of buildValidFields
    // Build a list of valid non-transient fields
    List<Field> validFields = buildValidFields(false, allFields, context, useAsm);
    // Build a list of valid transient fields
    List<Field> validTransientFields = buildValidFields(true, allFields, context, useAsm);

    // Use ReflectASM for any public fields.
    if (useAsmEnabled && !Util.isAndroid && Modifier.isPublic(type.getModifiers()) && useAsm.indexOf(1) != -1) {
      try {
        access = FieldAccess.get(type);
      } catch (RuntimeException ignored) {
      }
    }
View Full Code Here

      nextClass = nextClass.getSuperclass();
    }

    ObjectMap context = kryo.getContext();

    IntArray useAsm = new IntArray();

    // Sort fields by their offsets
    if (useMemRegions && !useAsmEnabled && unsafeAvailable) {
      try {
        Field[] allFieldsArray = (Field[])sortFieldsByOffsetMethod.invoke(null, allFields);
        allFields = Arrays.asList(allFieldsArray);
      } catch (Exception e) {
        throw new RuntimeException("Cannot invoke UnsafeUtil.sortFieldsByOffset()", e);
      }
    }

    // TODO: useAsm is modified as a side effect, this should be pulled out of buildValidFields
    // Build a list of valid non-transient fields
    List<Field> validFields = buildValidFields(false, allFields, context, useAsm);
    // Build a list of valid transient fields
    List<Field> validTransientFields = buildValidFields(true, allFields, context, useAsm);

    // Use ReflectASM for any public fields.
    if (useAsmEnabled && !Util.isAndroid && Modifier.isPublic(type.getModifiers()) && useAsm.indexOf(1) != -1) {
      try {
        access = FieldAccess.get(type);
      } catch (RuntimeException ignored) {
      }
    }
View Full Code Here

    // Push proper scopes at serializer construction time
    if (genericsScope != null) kryo.pushGenericsScope(type, genericsScope);

    List<Field> validFields;
    List<Field> validTransientFields;
    IntArray useAsm = new IntArray();
   
    if (!minorRebuild) {
      // Collect all fields.
      List<Field> allFields = new ArrayList();
      Class nextClass = type;
      while (nextClass != Object.class) {
        Field[] declaredFields = nextClass.getDeclaredFields();
        if (declaredFields != null) {
          for (Field f : declaredFields) {
            if (Modifier.isStatic(f.getModifiers())) continue;
            allFields.add(f);
          }
        }
        nextClass = nextClass.getSuperclass();
      }

      ObjectMap context = kryo.getContext();

      // Sort fields by their offsets
      if (useMemRegions && !useAsmEnabled && unsafeAvailable) {
        try {
          Field[] allFieldsArray = (Field[])sortFieldsByOffsetMethod.invoke(null, allFields);
          allFields = Arrays.asList(allFieldsArray);
        } catch (Exception e) {
          throw new RuntimeException("Cannot invoke UnsafeUtil.sortFieldsByOffset()", e);
        }
      }

      // TODO: useAsm is modified as a side effect, this should be pulled out of buildValidFields
      // Build a list of valid non-transient fields
      validFields = buildValidFields(false, allFields, context, useAsm);
      // Build a list of valid transient fields
      validTransientFields = buildValidFields(true, allFields, context, useAsm);

      // Use ReflectASM for any public fields.
      if (useAsmEnabled && !Util.isAndroid && Modifier.isPublic(type.getModifiers()) && useAsm.indexOf(1) != -1) {
        try {
          access = FieldAccess.get(type);
        } catch (RuntimeException ignored) {
        }
      }
View Full Code Here

      nextClass = nextClass.getSuperclass();
    }

    ObjectMap context = kryo.getContext();

    IntArray useAsm = new IntArray();
    ArrayList<Field> validFields = new ArrayList(allFields.size());
    for (int i = 0, n = allFields.size(); i < n; i++) {
      Field field = allFields.get(i);

      int modifiers = field.getModifiers();
      if (Modifier.isTransient(modifiers)) continue;
      if (Modifier.isStatic(modifiers)) continue;
      if (field.isSynthetic() && ignoreSyntheticFields) continue;

      if (!field.isAccessible()) {
        if (!setFieldsAsAccessible) continue;
        try {
          field.setAccessible(true);
        } catch (AccessControlException ex) {
          continue;
        }
      }

      Optional optional = field.getAnnotation(Optional.class);
      if (optional != null && !context.containsKey(optional.value())) continue;

      validFields.add(field);

      // BOZO - Must be public?
      useAsm.add(!Modifier.isFinal(modifiers) && Modifier.isPublic(modifiers)
        && Modifier.isPublic(field.getType().getModifiers()) ? 1 : 0);
    }

    // Use ReflectASM for any public fields.
    if (!Util.isAndroid && Modifier.isPublic(type.getModifiers()) && useAsm.indexOf(1) != -1) {
      try {
        access = FieldAccess.get(type);
      } catch (RuntimeException ignored) {
      }
    }

    ArrayList<CachedField> cachedFields = new ArrayList(validFields.size());
    for (int i = 0, n = validFields.size(); i < n; i++) {
      Field field = validFields.get(i);

      int accessIndex = -1;
      if (access != null && useAsm.get(i) == 1) accessIndex = ((FieldAccess)access).getIndex(field.getName());

      cachedFields.add(newCachedField(field, cachedFields.size(), accessIndex));
    }

    Collections.sort(cachedFields, this);
View Full Code Here

      nextClass = nextClass.getSuperclass();
    }

    ObjectMap context = kryo.getContext();

    IntArray useAsm = new IntArray();
    ArrayList<Field> validFields = new ArrayList(allFields.size());
    for (int i = 0, n = allFields.size(); i < n; i++) {
      Field field = allFields.get(i);

      int modifiers = field.getModifiers();
      if (Modifier.isTransient(modifiers)) continue;
      if (Modifier.isStatic(modifiers)) continue;
      if (field.isSynthetic() && ignoreSyntheticFields) continue;

      if (!field.isAccessible()) {
        if (!setFieldsAsAccessible) continue;
        try {
          field.setAccessible(true);
        } catch (AccessControlException ex) {
          continue;
        }
      }

      Optional optional = field.getAnnotation(Optional.class);
      if (optional != null && !context.containsKey(optional.value())) continue;

      validFields.add(field);

      // BOZO - Must be public?
      useAsm.add(!Modifier.isFinal(modifiers) && Modifier.isPublic(modifiers)
        && Modifier.isPublic(field.getType().getModifiers()) ? 1 : 0);
    }

    // Use ReflectASM for any public fields.
    if (!Util.isAndroid && Modifier.isPublic(type.getModifiers()) && useAsm.indexOf(1) != -1) {
      try {
        access = FieldAccess.get(type);
      } catch (RuntimeException ignored) {
      }
    }

    ArrayList<CachedField> cachedFields = new ArrayList(validFields.size());
    for (int i = 0, n = validFields.size(); i < n; i++) {
      Field field = validFields.get(i);

      int accessIndex = -1;
      if (access != null && useAsm.get(i) == 1) accessIndex = ((FieldAccess)access).getIndex(field.getName());

      cachedFields.add(newCachedField(field, cachedFields.size(), accessIndex));
    }

    Collections.sort(cachedFields, this);
View Full Code Here

      nextClass = nextClass.getSuperclass();
    }

    ObjectMap context = kryo.getContext();

    IntArray useAsm = new IntArray();
    ArrayList<Field> validFields = new ArrayList(allFields.size());
    for (int i = 0, n = allFields.size(); i < n; i++) {
      Field field = allFields.get(i);

      int modifiers = field.getModifiers();
      if (Modifier.isTransient(modifiers)) continue;
      if (Modifier.isStatic(modifiers)) continue;
      if (field.isSynthetic() && ignoreSyntheticFields) continue;

      if (!field.isAccessible()) {
        if (!setFieldsAsAccessible) continue;
        try {
          field.setAccessible(true);
        } catch (AccessControlException ex) {
          continue;
        }
      }

      Optional optional = field.getAnnotation(Optional.class);
      if (optional != null && !context.containsKey(optional.value())) continue;

      validFields.add(field);

      // BOZO - Must be public?
      useAsm.add(!Modifier.isFinal(modifiers) && Modifier.isPublic(modifiers)
        && Modifier.isPublic(field.getType().getModifiers()) ? 1 : 0);
    }

    // Use ReflectASM for any public fields.
    if (!Util.isAndroid && Modifier.isPublic(type.getModifiers()) && useAsm.indexOf(1) != -1) {
      try {
        access = FieldAccess.get(type);
      } catch (RuntimeException ignored) {
      }
    }

    ArrayList<CachedField> cachedFields = new ArrayList(validFields.size());
    for (int i = 0, n = validFields.size(); i < n; i++) {
      Field field = validFields.get(i);

      int accessIndex = -1;
      if (access != null && useAsm.get(i) == 1) accessIndex = ((FieldAccess)access).getIndex(field.getName());

      cachedFields.add(newCachedField(field, cachedFields.size(), accessIndex));
    }

    Collections.sort(cachedFields, this);
View Full Code Here

    // Push proper scopes at serializer construction time
    if (genericsScope != null) kryo.pushGenericsScope(type, genericsScope);

    List<Field> validFields;
    List<Field> validTransientFields;
    IntArray useAsm = new IntArray();
   
    if (!minorRebuild) {
      // Collect all fields.
      List<Field> allFields = new ArrayList();
      Class nextClass = type;
      while (nextClass != Object.class) {
        Field[] declaredFields = nextClass.getDeclaredFields();
        if (declaredFields != null) {
          for (Field f : declaredFields) {
            if (Modifier.isStatic(f.getModifiers())) continue;
            allFields.add(f);
          }
        }
        nextClass = nextClass.getSuperclass();
      }

      ObjectMap context = kryo.getContext();

      // Sort fields by their offsets
      if (useMemRegions && !useAsmEnabled && unsafeAvailable) {
        try {
          Field[] allFieldsArray = (Field[])sortFieldsByOffsetMethod.invoke(null, allFields);
          allFields = Arrays.asList(allFieldsArray);
        } catch (Exception e) {
          throw new RuntimeException("Cannot invoke UnsafeUtil.sortFieldsByOffset()", e);
        }
      }

      // TODO: useAsm is modified as a side effect, this should be pulled out of buildValidFields
      // Build a list of valid non-transient fields
      validFields = buildValidFields(false, allFields, context, useAsm);
      // Build a list of valid transient fields
      validTransientFields = buildValidFields(true, allFields, context, useAsm);

      // Use ReflectASM for any public fields.
      if (useAsmEnabled && !Util.isAndroid && Modifier.isPublic(type.getModifiers()) && useAsm.indexOf(1) != -1) {
        try {
          access = FieldAccess.get(type);
        } catch (RuntimeException ignored) {
        }
      }
View Full Code Here

TOP

Related Classes of com.esotericsoftware.kryo.util.IntArray

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.