<div dir="ltr"><div class="gmail_default" style="font-size:small">Hello!</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">JEP 471 says that 79 methods out of 87 have been deprecated in sun.misc.Unsafe. However, I have a different number.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Deprecated for removal in Java 18:</div><div class="gmail_default" style="font-size:small">1. public long objectFieldOffset(Field f)<br>2. public Object staticFieldBase(Field f)<br>3. public long staticFieldOffset(Field f)<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Deprecated for removal in Java 23:<br></div><div class="gmail_default" style="font-size:small">1. public int addressSize()<br>2. public long allocateMemory(long bytes)<br>3. public int arrayBaseOffset(Class<?> arrayClass)<br>4. public int arrayIndexScale(Class<?> arrayClass)<br>5. public final boolean compareAndSwapInt(Object o, long offset, int expected, int x)</div><div class="gmail_default" style="font-size:small">6. public final boolean compareAndSwapLong(Object o, long offset,
long expected, long x)<br>7. public final boolean compareAndSwapObject(Object o, long offset,
Object expected, Object x)<br>8. public void copyMemory(Object srcBase, long srcOffset, Object destBase, long destOffset, long bytes)<br>9. public void copyMemory(long srcAddress, long destAddress, long bytes)<br>10. public void freeMemory(long address)<br>11. public long getAddress(long address)<br>12. public final int getAndAddInt(Object o, long offset, int delta)<br>13. public final long getAndAddLong(Object o, long offset, long delta)<br>14. public final int getAndSetInt(Object o, long offset, int newValue)<br>15. public final long getAndSetLong(Object o, long offset, long newValue)<br>16. public final Object getAndSetObject(Object o, long offset, Object newValue)<br>17. public boolean getBoolean(Object o, long offset)<br>18. public boolean getBooleanVolatile(Object o, long offset)<br>19. public byte getByte(Object o, long offset)<br>20. public byte getByte(long address)<br>21. public byte getByteVolatile(Object o, long offset)<br>22. public char getChar(Object o, long offset)<br>23. public char getChar(long address)<br>24. public char getCharVolatile(Object o, long offset)<br>25. public double getDouble(Object o, long offset)<br>26. public double getDouble(long address)<br>27. public double getDoubleVolatile(Object o, long offset)<br>28. public float getFloat(Object o, long offset)<br>29. public float getFloat(long address)<br>30. public float getFloatVolatile(Object o, long offset)<br>31. public int getInt(Object o, long offset)<br>32. public int getInt(long address)<br>33. public int getIntVolatile(Object o, long offset)<br>34. public long getLong(Object o, long offset)<br>35. public long getLong(long address)<br>36. public long getLongVolatile(Object o, long offset)<br>37. public Object getObject(Object o, long offset)<br>38. public Object getObjectVolatile(Object o, long offset)<br>39. public short getShort(Object o, long offset)<br>40. public short getShort(long address)<br>41. public short getShortVolatile(Object o, long offset)<br>42. public void invokeCleaner(java.nio.ByteBuffer directBuffer)<br>43. public void putAddress(long address, long x)<br>44. public void putBoolean(Object o, long offset, boolean x)<br>45. public void putBooleanVolatile(Object o, long offset, boolean x)<br>46. public void putByte(Object o, long offset, byte x)<br>47. public void putByte(long address, byte x)<br>48. public void putByteVolatile(Object o, long offset, byte x)<br>49. public void putChar(Object o, long offset, char x)<br>50. public void putChar(long address, char x)<br>51. public void putCharVolatile(Object o, long offset, char x)<br>52. public void putDouble(Object o, long offset, double x)<br>53. public void putDouble(long address, double x)<br>54. public void putDoubleVolatile(Object o, long offset, double x)<br>55. public void putFloat(Object o, long offset, float x)<br>56. public void putFloat(long address, float x)<br>57. public void putFloatVolatile(Object o, long offset, float x)<br>58. public void putInt(Object o, long offset, int x)<br>59. public void putInt(long address, int x)<br>60. public void putIntVolatile(Object o, long offset, int x)<br>61. public void putLong(Object o, long offset, long x)<br>62. public void putLong(long address, long x)<br>63. public void putLongVolatile(Object o, long offset, long x)<br>64. public void putObject(Object o, long offset, Object x)<br>65. public void putObjectVolatile(Object o, long offset, Object x)<br>66. public void putOrderedInt(Object o, long offset, int x)<br>67. public void putOrderedLong(Object o, long offset, long x)<br>68. public void putOrderedObject(Object o, long offset, Object x)<br>69. public void putShort(Object o, long offset, short x)<br>70. public void putShort(long address, short x)<br>71. public void putShortVolatile(Object o, long offset, short x)<br>72. public long reallocateMemory(long address, long bytes)<br>73. public void setMemory(Object o, long offset, long bytes, byte value)<br>74. public void setMemory(long address, long bytes, byte value)<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So, my list says that<b> the total count is 3+74=77 (not 79).</b></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The rest of methods:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Deprecated for removal in Java 22 (not for memory access):<br>1. public void fullFence()<br>2. public int getLoadAverage(double[] loadavg, int nelems)<br>3. public void loadFence()<br>4. public void park(boolean isAbsolute, long time)<br>5. public void storeFence()<br>6. public void unpark(Object thread)<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Not deprecated yet:</div><div class="gmail_default" style="font-size:small">1. public int pageSize()</div><div class="gmail_default" style="font-size:small">2. public Object allocateInstance(Class<?> cls)</div><div class="gmail_default" style="font-size:small">3. public void throwException(Throwable ee)</div><div class="gmail_default" style="font-size:small">4. public static Unsafe getUnsafe()</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So, the total number of methods is (3+74)+(6+4)=87. This is correct (JEP also says 87).</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Should the number in the JEP be fixed? (79 out of 87 -> 77 out of 87).</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Best regards.</div><div class="gmail_default" style="font-size:small"><br></div></div>