Page 1 of 1

Doubts about object deletion management

Posted: Fri Dec 18, 2015 10:58 pm
by warex
Here is part of code about object deletion management under java card 3 platform classic edition. My doubts is when I call JCSystem.requestObjectDeletion(); is the buffer1 deleted or the buffer?

Code: Select all

void updateBuffer(byte requiredSize)
     {
     try
       {
          if(buffer != null && buffer.length == requiredSize)
             {
             ..// A buffer of required size
              return;
             }

          JCSystem.beginTransaction();
          byte[] buffer1 = buffer;
          buffer = new byte[requiredSize];

          if (buffer1 != null)
             JCSystem.requestObjectDeletion();

          JCSystem.commitTransaction();
      }

    catch(Exception e)
      {
          JCSystem.abortTransaction();
      }
   }

Re: Doubts about object deletion management

Posted: Wed Dec 30, 2015 10:39 pm
by Tarantino
Just try to modify your code as follows. It would be more clearer.

Code: Select all


...

      if(buffer != null && buffer.length == requiredSize)
             {
                ..// A buffer of required size
                return;
             }

       JCSystem.beginTransaction();
        buffer = new byte[requiredSize];
        JCSystem.requestObjectDeletion();
        JCSystem.commitTransaction();
...